Форум: "Базы";
Текущий архив: 2004.12.12;
Скачать: [xml.tar.bz2];
ВнизДесятичные разряды. Найти похожие ветки
← →
Pertovsky (2004-11-10 13:28) [0]Мне нужно, чтобы в поле высвечивалось число с 6 (шестью) знаками после запятой. И хотя в БД все в порядке, в приложении и в гриде, и в DBEdit - только 4. В БД тип поля - Decimal (Precision = 12, Scale = 6). В ADODataSet тип поля - TBCDField (Precision = 12, Size = 6).
Как добиться отображения шести разрядов?
← →
Mike Kouzmine © (2004-11-10 13:29) [1]Может маска поможет?
← →
Pertovsky (2004-11-10 13:34) [2]Не помогает. Пробовал.
← →
Pertovsky (2004-11-11 11:44) [3]Неужели такой неактуальный вопрос? И никто не сталкивался с такой проблемой?
Тогда объясните, пожалуйста еще и такой факт: почему два поля одного типа в одной таблице БД (MS SQL - decimal), в Delphi (ADODataSet) имеют разный тип - одно TBCDField, а другое - TFloatField?
← →
paul_k © (2004-11-11 13:28) [4]а "код в студию"?
привести структуру таблицы, пример данных и так далее?
← →
Johnmen © (2004-11-11 13:31) [5]>Тогда объясните, пожалуйста еще и такой факт: почему два поля
>одного типа в одной таблице БД (MS SQL - decimal), в Delphi
>(ADODataSet) имеют разный тип - одно TBCDField, а другое -
>TFloatField?
Потому, что их "размерности" разные...
← →
sniknik © (2004-11-11 14:01) [6]кстати BCD поля могут конвертироваться в тип каренси (или в промежуточной конвертации этот тип использоваться) тогда после запятой максимум 4 знака будет (как в типе описано).
ситуацию когда такое может быть не помню, помню только было такое. надо перепроверять.
(включи отладку в модулях, в опциях проэкта compiler "use debug dcu" и пройдись по F7 по "темным" местам)
← →
Ega23 © (2004-11-11 14:20) [7]
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:52) [8]> Всё прекрасно работает...
а так попробуйRQTemp.SQL.Text:= "Select X=Cast(GetDate() as DECIMAL(12,6))"
?
вот так оно конечно срабатывает
SELECT Cast(CAST(GetDate() AS DECIMAL(12,6)) AS Char(20))
6 знаков показывает, но это же на стороне сервера... а вот если придет в формате десимал...
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.12.12;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.088 c