powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / saVCL невозможно получить 6 знаков точности!
2 сообщений из 2, страница 1 из 1
saVCL невозможно получить 6 знаков точности!
    #33099372
wados
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос в следуюшем:
в приложении (Delphi) настроен TSaDs(asTable)
все decimal поля таблиц оцениваются как TBCDField - отсюда пляшет точность 4 знака после запятой! как это бороть или это глюк? Однозначно так НЕ пойдет.
...
Рейтинг: 0 / 0
saVCL невозможно получить 6 знаков точности!
    #33107561
>> Вопрос в следуюшем:
>> в приложении (Delphi) настроен TSaDs(asTable)
>> все decimal поля таблиц оцениваются как TBCDField - отсюда пляшет точность 4 >> знака после запятой! как это бороть или это глюк? Однозначно так НЕ пойдет.

Какой делфи используется? В 6 и 7 поле будет иметь тип TFMTBCDField. Посмотрите исходник SaDsBase.pas, функция TSaDsBase.AllocateFldDescs. Там есть такой код:
----
DT_DECIMAL
: begin
if ( HIBYTE( p^.iSqlLen ) <= 4 ) and ( LOBYTE( p^.iSqlLen ) <= 19 )
then begin
pDesc^.iFldType := ftBCD;
pDesc^.iFldSize := HIBYTE( p^.iSqlLen );
pDesc^.iFldPrec := LOBYTE( p^.iSqlLen );
end
else begin
{$ifdef D_67}
pDesc^.iFldType := ftFmtBCD;
pDesc^.iFldPrec := LOBYTE( p^.iSQLLen );
{$else}
pDesc^.iFldType := ftFloat;
{$endif}
end;
end;
----
Так что поле будет иметь тип TBCDField только если DECIMAL имеет подходящую размерность, в остальных случаях или TFMTBCDField или TFloatField.

С уважением, Сергей Гаврилов.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / saVCL невозможно получить 6 знаков точности!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]