Форум: "Базы";
Текущий архив: 2006.04.23;
Скачать: [xml.tar.bz2];
ВнизInvalid Floating Point Найти похожие ветки
← →
ViktorZ © (2006-02-26 15:06) [0]Вылетает ошибка у пользователя. У меня главное все нормально. Компилирую прогу отправляю. у него еррор. Главное я даже понять не могу где. Использую Квик репорт.
← →
Vlad © (2006-02-26 15:14) [1]
> ViktorZ © (26.02.06 15:06)
Вопрос то в чем?
← →
Sergey Masloff (2006-02-26 15:17) [2]>Компилирую прогу отправляю. у него еррор.
Это плохо. Писать надо так чтобы работало везде.
← →
Desdechado © (2006-02-26 16:56) [3]а по тексту ошибки догадаться не пробовал?
← →
ViktorZ © (2006-02-26 17:41) [4]а по тексту ошибки догадаться не пробовал?
Как? если у меня ее нет. В инете по этому запросу такой лабуды начитался от команд неведомых, до того что эта проблема глюк.
>Компилирую прогу отправляю. у него еррор.
> Это плохо. Писать надо так чтобы работало везде.
Золотые слова. Жаль что только слова...
> Вопрос то в чем?
ИМХО я бы догадался. Из-за чего ошибка и как ее исправить. Потому что непонятно из-за чего она так как у меня все ОК. Мож какие нить библиотеки нужны, хотя Делфи все в себя шьет. Странно.
← →
ViktorZ © (2006-02-26 17:48) [5]Invalid Floating Point - Не правильная операция с плавающей запятой. Да у меня там только даты и целые числа и строки.
← →
Vlad © (2006-02-26 17:54) [6]
> ViktorZ © (26.02.06 17:41) [4]
> Из-за чего ошибка и как ее исправить
Ошибка, ясно дело, в твоей программе. Текст ошибки ясно об этом говорит.
Как можно дать тебе вразумительный ответ на вопрос "как исправить", не видя кода твоей программы, не зная что она делает и в какой момент возникает ошибка?
> Да у меня там только даты и целые числа и строки
а дата и есть число с плавающей запятой. См. справку TDateTime
← →
ViktorZ © (2006-02-26 17:57) [7]Как можно дать тебе вразумительный ответ на вопрос "как исправить", не видя кода твоей программы, не зная что она делает и в какой момент возникает ошибка?
Код очень громоздкий.
Но ошибка вылетает при нажатии на кнопку ее код и приведу.procedure TForm1.BitBtn1Click(Sender: TObject);
begin
Query1.Close;
Query1.SQL.Text:="SELECT C.Card,SUM(AR.Qnt*AR.RealPrice) AS CAT FROM Cards C, Menu M "+
" LEFT OUTER JOIN ARCheck AR on AR.Sifr=M.Sifr "+
" LEFT OUTER JOIN ADCheck AD on AD.Sys_Num=AR.Sys_Num "+
" LEFT OUTER JOIN ACheck A on A.Sys_Num=AD.Sys_Num "+
" WHERE "+
" M.Categ=:P1 And "+
" (A.LogicDate BETWEEN :P2 AND :P3) AND "+
" (AD.CArdCod=C.Card) GROUP By C.CArd";
Query1.Params[0].AsInteger :=strtoint(Edit3.text);
Query1.Params[1].AsDate:= strtodate(Edit1.text);
Query1.Params[2] .AsDAte :=strtodate(Edit2.text);
Query1.Open ;
Query2.Close;
Query2.SQL.Text:="SELECT C.Card,SUM(AR.qnt*Ar.RealPrice) AS TOTAL FROM Cards C, Menu M "+
"LEFT OUTER JOIN ARCheck AR on AR.Sifr=M.Sifr "+
"LEFT OUTER JOIN ADCheck AD on AD.Sys_Num=AR.Sys_Num "+
"LEFT OUTER JOIN acheck A on A.Sys_Num=AD.Sys_Num "+
"WHERE "+
"M.CAteg<>:P1 And "+
"(A.LogicDate BETWEEN :P2 AND :P3)"+
"AND AD.CArdCod=C.Card GROUP By C.CArd";
Query2.Params[0].AsInteger :=strToInt(Edit3.text);
Query2.Params[1].AsDate:= strtodate(Edit1.text);
Query2.Params[2] .AsDAte :=strtodate(Edit2.text);
Query2.Open;
Query3.Close;
Query3.SQL.Text:="SELECT C.Card,SUM(AR.qnt*Ar.RealPrice) AS Del FROM Cards C, Menu_ M "+
"LEFT OUTER JOIN ARCheck AR on AR.Sifr=M.Sifr "+
"LEFT OUTER JOIN ADCheck AD on AD.Sys_Num=AR.Sys_Num "+
"LEFT OUTER JOIN acheck A on A.Sys_Num=AD.Sys_Num "+
"WHERE "+
"M.CAteg<>:P1 And "+
"(A.LogicDate BETWEEN :P2 AND :P3)"+
"AND AD.CArdCod=C.Card GROUP By C.CArd";
Query3.Params[0].AsInteger :=strToInt(Edit3.text);
Query3.Params[1].AsDate:= strtodate(Edit1.text);
Query3.Params[2] .AsDAte :=strtodate(Edit2.text);
Query3.Open;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
Dbgrid1.DataSource := DataSource1;
Query1.DatabaseName :="SEN";
DAtasource1.DataSet :=Query1;
GridRep.Visible :=False ;
Session.AddPassword("Aeroflot_Plus");
Query1.Active:=true;
Query2.Active:=true;
Query3.Active:=true;
end;
НАсчет даты, даже и не думал. Спасибо буду рыть.
← →
Desdechado © (2006-02-26 18:15) [8]> Query1.Params[0].AsInteger :=strtoint(Edit3.text);
> Query1.Params[1].AsDate:= strtodate(Edit1.text);
> Query1.Params[2] .AsDAte :=strtodate(Edit2.text);
а если в Edit не то, что ты ожидаешь?
пользователь-то может и промахнуться или даже не правильно понять, что туда вводить
и формат ввода тоже важен
← →
ViktorZ © (2006-02-26 18:31) [9]Я то как раз то там и ожидаю и у меня работает. Пользователь все правильно делает. Я на форме подписал уже заранее в поля тестовые:15,01.01.2006,24.02.2006 соответсвенно. Другое дело что разделители могут быть разные. Но проверив, понял что нет.
← →
ViktorZ © (2006-02-26 18:59) [10]Дело как выясняется в базе.
← →
Vlad © (2006-02-26 19:02) [11]
> ViktorZ © (26.02.06 18:59) [10]
> Дело как выясняется в базе.
Т.е. ошибку дает сервер БД?
Уж не на это ли ругается:SUM(AR.qnt*Ar.RealPrice)
← →
ViktorZ © (2006-02-26 19:03) [12]я не знаю. У меня Прфайлера нет. А отладчике не шарю.
← →
Vlad © (2006-02-26 19:13) [13]
> ViktorZ © (26.02.06 19:03) [12]
Ну, тогда для начала все-таки необходимо установить - кто дает ошибку: клиент или сервер БД.
Кстати, какую БД используешь?
← →
ViktorZ © (2006-02-26 19:17) [14]Ой вроде птичку ставил. Парадокс. Короче ситуевина такая. Берет пользователь чистую базу. Прога не выдает ошибки, но отрабатывает и ничего не выводит. Когда база заполнена чем то, то ошибка есть.
← →
Джо © (2006-02-26 19:48) [15]А говорил, что ошибки в программе нет... Есть она, есть.
← →
Sergey Masloff (2006-02-26 20:49) [16]Все же на 90% дело в настройках - какие-то разделители у пользователя не те. Нельзя закладываться не на какие пользовательские настройки - за все что программа ожидает получить как внешние данные отвечает программист.
← →
Johnmen © (2006-02-26 20:55) [17]Ошибка звучит так Invalid Floating Point Operation
Осталось выяснить, на какой строчке кода.
← →
Petr V. Abramov © (2006-02-26 21:54) [18]В свое время (98г) связка BDE+QR+SQLLinkдрайвер Oracle стабильно выдавала такую ошибку на процессоре Cyrix. Были такие приколы на мат. платах с каким-то вполне определенным чипсетом.
Но скорее дело в чем-нить типа разделителей
← →
Zacho © (2006-02-26 22:22) [19]Я что-то пропустил, или автор ветки так и не назвал СУБД ?
← →
Sergey Masloff (2006-02-26 22:51) [20]Zacho © (26.02.06 22:22) [19]
Пропустил. Парадокс.
← →
Neo Trinitron © (2006-02-27 13:07) [21]Если подобные вещи (у меня работает, а на другой машине нет), то целесобразно посмотреть на настройки другой машины. Обратить внимание на разделители дат, целой и дробной части.
← →
ViktorZ © (2006-02-27 14:34) [22]РАзделителт дат у нас совпадают и чмсел кстати тоже. Выяснилось все так: у юзверя при смене таблиц БД, все заработало. Скорее всего с датой что нить в самой базе было.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2006.04.23;
Скачать: [xml.tar.bz2];
Память: 0.5 MB
Время: 0.014 c