Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.12.12;
Скачать: CL | DM;

Вниз

Десятичные разряды.   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.025 c
9-1092384941
pavel_pavel
2004-08-13 12:15
2004.12.12
Инвентарь в игре


14-1100843607
Mike Kouzmine
2004-11-19 08:53
2004.12.12
Есть ли на форуме обладатели Nokia 7610?


4-1099238292
Arnold
2004-10-31 18:58
2004.12.12
Выравнивание в TEdit


1-1101585715
GanibalLector
2004-11-27 23:01
2004.12.12
C: Windows Шаблоны Normal.dot


8-1094821384
_Demik_
2004-09-10 17:03
2004.12.12
WebCam Logitech - как записать ролик и получить снимок