Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Десятичные разряды. [D5, MSSQL]


Pertovsky ©   (2004-11-10 13:28:00) 

Мне нужно, чтобы в поле высвечивалось число с 6 (шестью) знаками после запятой. И хотя в БД все в порядке, в приложении и в гриде, и  в DBEdit - только 4.  В БД тип поля - Decimal (Precision = 12, Scale = 6). В ADODataSet тип поля - TBCDField (Precision = 12, Size = 6).
Как добиться отображения шести разрядов?


sniknik   (2004-11-11 14:52:00) [1]

> Всё прекрасно работает...
а так попробуй
RQTemp.SQL.Text:= 'Select X=Cast(GetDate() as DECIMAL(12,6))'

?
вот так оно конечно срабатывает
SELECT Cast(CAST(GetDate() AS DECIMAL(12,6)) AS  Char(20))
6 знаков показывает, но это же на стороне сервера... а вот если придет в формате десимал...


Ega23   (2004-11-11 14:20:00) [2]

procedure TFMain.Button1Click(Sender: TObject);
var
ss:string;
begin
ss:='Select X=Cast(GetDate() as Float)';
RQTemp.SQL.Text:=ss;
RQTemp.Open;
Str(RQTemp.FieldByName('X').AsFloat:12:6,ss);
ShowMessage(ss);
end;


Всё прекрасно работает...


sniknik   (2004-11-11 14:01:00) [3]

кстати BCD поля могут конвертироваться в тип каренси (или в промежуточной конвертации этот тип использоваться) тогда после запятой максимум 4 знака будет (как в типе описано).
ситуацию когда такое может быть не помню, помню только было такое. надо перепроверять.
(включи отладку в модулях, в опциях проэкта compiler "use debug dcu" и пройдись по F7 по "темным" местам)


Johnmen   (2004-11-11 13:31:00) [4]

>Тогда объясните, пожалуйста еще и такой факт: почему два поля
>одного типа в одной таблице БД (MS SQL - decimal), в Delphi
>(ADODataSet) имеют разный тип - одно TBCDField, а другое -
>TFloatField?

Потому, что их "размерности" разные...


paul_k   (2004-11-11 13:28:00) [5]

а "код в студию"?
привести структуру таблицы, пример данных и так далее?


Pertovsky   (2004-11-11 11:44:00) [6]

Неужели такой неактуальный вопрос? И никто не сталкивался с такой проблемой?
Тогда объясните, пожалуйста еще и такой факт: почему два поля одного типа в одной таблице БД (MS SQL - decimal), в Delphi (ADODataSet) имеют разный тип - одно TBCDField, а другое - TFloatField?


Pertovsky   (2004-11-10 13:34:00) [7]

Не помогает. Пробовал.


Mike Kouzmine   (2004-11-10 13:29:00) [8]

Может маска поможет?


Наверх

Титульная страница Поиск, карта сайта Написать письмо