Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 MS SQL Server 2000. Help! работа с Decimal.  [new]
Teomir
Member

Откуда:
Сообщений: 5
Всем доброго времени суток.

Борюсь уже вторые сутки с такой проблемой.

По порядку.

В таблице есть поле S_S1 и S_S2 типа Decimal(12,4)

Программа лезет в базу с таким запросом:

SELECT SUM(S_S1) as S1,
SUM(S_S2) as S2 FROM S_TABLE

Если в полях к примеру все значения нулевые, то на выходе результат будет:

S1 S2
-----------------------
.0000 .0000

Как можно сделать что бы на выходе было 0.0000 и только тип Decimal(12,4) Без конвертации, тоесть CAST и CONVERT.
В программе из-за этого возникает ошибка Floating point operation error.
Дело в том, что там программа которая использует эту базу данных, написана на Delphi (исходников нет). И те поля которые
определены в программе как TBCDField. Если попытаться сделать str(SUM(S_S1),12,4) то будет ошибка о несоответсвии полей.
Единственное что могу поменять в программе это сам запрос, но не типы полей.

Подскажите что можно сделать!

Спасибо!
27 июн 16, 07:18    [19338414]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL Server 2000. Help! работа с Decimal.  [new]
o-o
Guest
На выходе и так 0.0000
Наверное, это ваша супер-программа криво отображает
27 июн 16, 08:05    [19338456]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL Server 2000. Help! работа с Decimal.  [new]
Teomir
Member

Откуда:
Сообщений: 5
Я смотрю не в программе. А через Analyzer.
На выходе как раз таки .0000 А должно 0.0000
27 июн 16, 08:34    [19338474]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL Server 2000. Help! работа с Decimal.  [new]
o-o
Guest
Teomir
Я смотрю не в программе. А через Analyzer.
На выходе как раз таки .0000 А должно 0.0000

ну значит кривой аналайзер

К сообщению приложен файл. Размер - 42Kb
27 июн 16, 09:44    [19338628]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL Server 2000. Help! работа с Decimal.  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31443
Teomir
Как можно сделать что бы на выходе было 0.0000 и только тип Decimal(12,4) Без конвертации, тоесть CAST и CONVERT.
В программе из-за этого возникает ошибка Floating point operation error.
Или программа кривая, или какие то поля не Decimal(12,4)
Teomir
что бы на выходе было 0.0000
Если на выходе Decimal(12,4), то сервер отдаёт нет 0.0000, или не .00000, и не 0000.0, а 72 бита, часть из которых используется для представления целой части, а часть для дробной.
А ваши "0.0000" - это результат преобразования вашим клиентским приложением этих битов в символьную строку.
Так что разбирайтесь с этим, только убедитесь, что результат сервер выдаёт в формате Decimal(12,4), а не в каком то другом.
27 июн 16, 09:54    [19338670]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL Server 2000. Help! работа с Decimal.  [new]
o-o
Guest
да аналайзер так показывает, ну разве непонятно, что все дело в отображении (и уж точно не в версии сервера)?
вон на картинке вверху студия 2008 показывает, как ему(ТС) хочется.
а вот аналайзер, приконнекченный и к 2000, и к 2008, не показывает первый ноль, и что?
опросите длину этого числа, 6 видите?
значит, суслик на месте, просто аналайзеру лениво его отрисовывать

К сообщению приложен файл. Размер - 31Kb
27 июн 16, 09:59    [19338684]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL Server 2000. Help! работа с Decimal.  [new]
Teomir
Member

Откуда:
Сообщений: 5
Всем спасибо! Буду разбираться в чем дело!
27 июн 16, 10:16    [19338754]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL Server 2000. Help! работа с Decimal.  [new]
Teomir
Member

Откуда:
Сообщений: 5
Еще вопрос, как победить ошибку [ODBC Driver] недопустимый формат даты? Все настройки локализации верные.
Поля в базе данных DateTime(8)

Из Delphi запроса определены параметры с типом полей ftDate

При выполнении запроса типа:

SELECT *, m_date WHERE m_date=:DT

ADOQuery.Params.ParamsByName('DT').AsDate:=Now;

Валиться с вышеуказанной ошибкой.
27 июн 16, 10:21    [19338775]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL Server 2000. Help! работа с Decimal.  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31443
Teomir
Еще вопрос, как победить ошибку [ODBC Driver] недопустимый формат даты? Все настройки локализации верные.
Поля в базе данных DateTime(8)

Из Delphi запроса определены параметры с типом полей ftDate
Ну, это вопрос по программированию на Delphi
27 июн 16, 10:51    [19338939]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL Server 2000. Help! работа с Decimal.  [new]
Teomir
Member

Откуда:
Сообщений: 5
alexeyvg,

Раньше всегда работало, после того как переустановили сервер, все слетело. Может проблемы с драйвером ODBC.. Пока не могу найти информацию.
27 июн 16, 18:48    [19341710]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL Server 2000. Help! работа с Decimal.  [new]
i-i
Guest
vozmogno s pereustanovkoy sql servera pereustanovili i windows, i defaultniy date format stal mm/dd/yyyy a delphi ogidaet naprimer mm-dd-yyyy
27 июн 16, 21:31    [19342304]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить