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

Вниз

Помогите - NAN   Найти похожие ветки 

 
Пиноккио   (2002-11-05 21:33) [0]

Парадокс, Делфи 5.
Возникает ужасная ощибка. То есть не возникает и программа формирует неправильный отчёт.
Кратко суть дела
- Программа создаёт временную таблицу:
with Table1 do begin
Active := False;
DatabaseName := Session.PrivateDir;
TableType := ttParadox;
TableName := "Temp1";
if Exists then DeleteTable;
with FieldDefs do begin
Clear;
Add("ID", ftInteger, 0, True);
Add("K1", ftFloat, 0, False);
Add("S1", ftFloat, 0, False);
Add("K2", ftFloat, 0, False);
Add("S2", ftFloat, 0, False);
Add("K3", ftFloat, 0, False);
Add("S3", ftFloat, 0, False);
Add("K4", ftFloat, 0, False);
Add("S4", ftFloat, 0, False);
Add("K5", ftFloat, 0, False);
Add("S5", ftFloat, 0, False);
Add("K6", ftFloat, 0, False);
Add("S6", ftFloat, 0, False);
Add("K7", ftFloat, 0, False);
Add("S7", ftFloat, 0, False);
Add("K8", ftFloat, 0, False);
Add("S8", ftFloat, 0, False);
Add("K9", ftFloat, 0, False);
Add("S9", ftFloat, 0, False);
Add("K10", ftFloat, 0, False);
Add("S10", ftFloat, 0, False);
Add("K11", ftFloat, 0, False);
Add("S11", ftFloat, 0, False);
Add("K12", ftFloat, 0, False);
Add("S12", ftFloat, 0, False);
end;
with IndexDefs do begin
Clear;
with AddIndexDef do begin
Name := "";
Fields := "ID";
Options := [ixPrimary];
end;
end;
CreateTable;
end;

Затем в цикле заполняю её примерно так
for i := 1 to ExtractDate(dtpEnd.date, ord(rvMonth)) do begin
Close;
ParamByName ("Params1").AsInteger := I;
Open;
While not Eof do begin
Table1.Edit;
FieldK.Value := FieldByName ("Kolvo").Value;
FieldS.Value := FieldByName ("Summa").Value;
TempTable.Post;
end;
end;

Так вот иногда я имею значение FieldByName ("Kolvo").Value равное 66.01, а после присвоения имею значение FieldK.Value - NAN. Это происходит только для определенных позиций, и то не всегда. Сам процесс формирования отчета занимает около 40 минут, под отладчиком ещё больше.

Проверял на двух третьих пнях с WIN98SE, работает неправильно. Дома не AMD c Win2000 ошибку смоделировать не получилось.
Извините за сумбурность.
Провозился два дня и без результата :-(
Буду благодарен за любую помощь.


 
Dmk ©   (2002-11-06 01:39) [1]

Рекомендую пройти обучение у Юрия Зотова и K. Поищи ветку Этап-2. Там есть ссылка на статью Антона Григорьева. Очень рекомендую.


 
Shaman ©   (2002-11-06 09:13) [2]

Попробуй использовать вместо .Value свойство .AsFloat

Проверь, все ли вещественные переменные инициализируются перед расчетом


 
Пиноккио   (2002-11-06 12:01) [3]

2Shaman
Пробовал и Ваш вариант тоже. Не помогает. Никакой ошибки во время исполнения нет.

2DMK
Спасибо
Перечитал статью. Попробую завтра поиграться с различными типами данных.

Однако все же не совсем ясно. Я беру одно число, полученное SQL запрочом при помощи суммирования поля типа Number (как показывает DataBase Desktop). Отладчик мне его показывает, как 66.01 (вот, именно, это число, наверное, заколдованное). А просто присваивая это значение полю, без различных арифмитических действий, дает мне -NAN. А иногда, это же число присваетcя правильно :-(((

Обидно, что бы проверить какое либо изменнение, надо тратить почти час



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

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

Наверх




Память: 0.48 MB
Время: 0.019 c
6-82886
keymaster
2002-09-25 16:44
2002.11.25
Трафик по диалапу


4-83076
zarum
2002-10-14 19:29
2002.11.25
как бы создать виртуальный диск в памяти (ex RAMDRIVE)


8-82880
ACR
2002-08-03 23:45
2002.11.25
Streming Video


3-82604
Z_man7777
2002-11-04 12:29
2002.11.25
Поиск в реальном времени


14-82913
Shadow
2002-11-06 22:31
2002.11.25
Детская преступность