Additional
dbCAP
AnyDAC
ThinDAC
NCOCI8
Topic: Release Notes
[Previous |1 2 3 |Next ]
RE: Release Notes
Posted: 2005/05/25 11:16
 
Вскрытие показало, что проблемы с полями DateTime и Float у датасета TpFIBDataSet (при обращении к этим полям в родном их формате, т.е. AsDateTime AsFloat) - invalid floating point operation, начинаются после открытия TADQuery. Не знаю в чем соль.... Есть идеи?
RE: Release Notes
Posted: 2005/05/25 11:48
 
Привет !

Попробуй так:

quote:3) Если не лень, то пройдись по коду по шагам (особо не заходя во внутрь процедур)и отслеживай значение Get8087CW. Как только изменится, то там **может быть** собака и зарыта ...

Посмотри для начала, какое значение Get8087CW до TADQuery.Open и какое после. Если значения разные, то открой daADPhysODBCWrapper, найди функцию DoExec, и посмотри на значение Get8087CW при входе в DoExec и при выходе.

Удачи,
Дмитрий
RE: Release Notes
Posted: 2005/05/25 11:54
 
Ок, сейчас попробую. Но как может открытие TADQuery изменить форматирование данных у совершенно другого датасета?
RE: Release Notes
Posted: 2005/05/25 12:00
 
Get8087CW - 4722 и до открытия и после
RE: Release Notes
Posted: 2005/05/25 12:24
 
quote:Но как может открытие TADQuery изменить форматирование данных
Очень просто - TADQuery обращается к MSSQL ODBC драйверу, а тот может иметь "особенность поведения" - смена управляющего слова математического сопроцессора. А этого более чем достаточно для твоей ошибки ...

1) А если больший фрагмент твоих исходников пройти и отслеживать ? Ну например, до логин и после, до ExecSQL и после.
2) Попробуй установить AnyDAC v 1.0.2
3) Попробуй установить последний MDAC.

Удачи,
Дмитрий

RE: Release Notes
Posted: 2005/05/25 12:46
 
1. После логина - все отрабатывает нормально, проблемы начинаются после ADQuery.Open
2. По поводу AnyDAC v 1.0.2 - у меня сейчас стоит AnyDAC v 1.0.1, мне просто проинсталировать новую версию или как-то сносить старую?
3. Уже выкачал и поставил MDAC 2.8 - результатов не дало
RE: Release Notes
Posted: 2005/05/25 12:53
 
quote:1. После логина - все отрабатывает нормально, проблемы начинаются после ADQuery.Open

Что значит "нормально" ? Очень интересует изменение значения Get8087CW. Давай так - поставь точку останова в DRP сразу после begin и посмотри там Get8087CW. Какое оно ?

quote:2. По поводу AnyDAC v 1.0.2 - у меня сейчас стоит AnyDAC v 1.0.1, мне просто проинсталировать новую версию или как-то сносить старую?

Сделай бэкап $(ADHOME)DBADDemoConnections.ini, если ты в нем хранишь определения конектов. И инсталируй поверх.
RE: Release Notes
Posted: 2005/05/25 13:02
 
1. "Нормально" - означает, чтопри обращении к полю типа датавремя я получаю нормальное значение. Get8087CW не меняется ни под каким соусом - 4722 и все.
2. Сейчас попробую поставить AnyDAC v 1.0.2
RE: Release Notes
Posted: 2005/05/25 13:05
 
Обновление библиотеки компонентов ничего не дало
RE: Release Notes
Posted: 2005/05/25 13:30
 
Плохо ... Тогда несколько бредовых идей:
1) Перед строчкой приводящей к ошибке, напиши следующий код:
asm
FNCLEX
end;
2) Если не помогло, то вместо этого напиши:
try
YourDoubleVariable := 0.0;
except
end;

Удачи (это уже не подпись а ... ,
Дмитрий
[Previous |1 2 3 |Next ]