![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Десятичные разряды. [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]Может маска поможет?