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

Вниз

Проблема с KOLEdb   Найти похожие ветки 

 
Ricko ©   (2004-01-23 13:46) [0]

База данных MS SQL Server; поле ID; формат MONEY; значение 98000060023. Использую KOLEdb:
id:=QR.RFieldByName["ID"];
Получаю значение 73243.2496. Почему так?


 
Ricko ©   (2004-02-24 16:35) [1]

А если вот так:
var id : int64;
id:=QR.LFieldByName["ID"]

То получаем 980000600230000.
Что делать? Помогите.


 
Владимир Кладов   (2004-02-24 20:21) [2]

Ну и чем второе решение не устраивает? Значение же верное возвращается. Или надо что-то другое чтобы получалось?


 
Boguslaw   (2004-02-24 21:32) [3]

By the way Vladimir ,could You add this two useful procedures to KOlOleDB

ShowLastOleError is for case when error should be shown only sometimes .
DummyOleError is replacement of old one which show OLE DB error description (which is hardly to find in docs so it nice feature)

I could also send You my all file but I;m not sure that I have the newest version modified.

Boguslaw Brandys

procedure ShowLastOleError;
var
hr : HRESULT;
pIErrorInfo : IErrorInfo;
Source,Description : WideString;
begin
 hr := GetErrorInfo(0,pIErrorInfo);
       // We"ve got the IErrorInfo interface pointer on the Error object
       if (hr = 0) then
       begin
           pIErrorInfo.GetSource(Source);
           pIErrorInfo.GetDescription(Description);
       end;
//    if Assigned(pIErrorInfo) then  pIErrorInfo._Release;
   ShowMsg("OLE DB error " + " [" + Source + "] " + Description,mb_iconhand);
end;

procedure DummyOleError( Result: HResult );
var
HR : HRESULT;
pIErrorInfo : IErrorInfo;
Source,Description : WideString;
begin
 hr := GetErrorInfo(0,pIErrorInfo);
       // We"ve got the IErrorInfo interface pointer on the Error object
       if (hr = 0) then
       begin
           pIErrorInfo.GetSource(Source);
           pIErrorInfo.GetDescription(Description);
       end;
//    if Assigned(pIErrorInfo) then  pIErrorInfo._Release;
   ShowMsg( "OLE DB error " + Int2Hex( Result, 8 ) + " [" + Source + "] " + Description,mb_iconhand);
   Halt;
end;


 
Ricko ©   (2004-02-25 09:43) [4]

Разве 980000600230000 = 98000060023 ?


 
Владимир Кладов   (2004-02-25 15:14) [5]

CURRENCY

A data type that is useful for calculations involving money or for fixed-point calculations in which accuracy is extremely important. This data type is used to store numbers with up to 15 digits to the left of the decimal point and 4 digits to the right. Because the Currency data type uses discrete values for all amounts, binary round-off isn’t a factor when calculating totals.

Ну  и все. Trunc( Result/100 ) / 100 = вот вам и деньги.



Страницы: 1 вся ветка

Текущий архив: 2004.07.25;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.052 c
3-1088488183
Akella
2004-06-29 09:49
2004.07.25
Народ подскажите как указать универсальный путь к базе данных


14-1089278711
ПИТОН
2004-07-08 13:25
2004.07.25
Объявления


1-1089409823
nick_mas
2004-07-10 01:50
2004.07.25
Как отключить процедуру RadioButton1.Click для "Down" и "Up"???


1-1089550907
buk
2004-07-11 17:01
2004.07.25
Все формы разом


14-1088751063
IceBeerg
2004-07-02 10:51
2004.07.25
Про злобный Windows :(