Форум: "Базы";
Текущий архив: 2004.03.05;
Скачать: [xml.tar.bz2];
ВнизГлючит BDE!Помогите!!! Найти похожие ветки
← →
MasterDenis (2004-02-09 13:13) [0]Система управления очередью для банка.
Все действия пишутся в базу данных.
Запрос формирую через TQuery. (внизу)
Где-то раз в 25-30 запросов возникает исключение и запрос не проходит, соответственно продседура где эта хрень происходит аварийно завершается.
Что делать?
Вроде обошел эту беду при помощи try .. except, но это не решение...
Помогите!!!
Str1 := DateToStr(Date);
Str2 := TimeToStr(Time);
Form1.Query1.Close; // Формируем SQL запрос
Form1.Query1.SQL.Clear;
Form1.Query1.SQL.Add("INSERT INTO "" + BaseName + "" (FAMILY,OPDATA,OPTIME,CLIENT,OPERATION)");
Form1.Query1.SQL.Add("VALUES ("" + Kassa[ToDevice.i,ToDevice.j].Name + "","" + Str1 + "","" + Str2 + "","" + IntToStr(Kassa[ToDevice.i,ToDevice.j].Client.Num) + "","+1")");
Form1.Query1.ExecSQL;
← →
Sandman25 (2004-02-09 13:16) [1]1. Какое исключение?
2. Почему не используете параметры? Поставлю я в качестве разделителя даты запятую, и все, конец программе.
3. В Kassa[ToDevice.i,ToDevice.j].Name могут быть кавычки?
4. Почему сразу глюк BDE, а не Ваша ошибка?
← →
MasterDenis (2004-02-09 14:27) [2]1.Ошибка "Access Vialation ...".
2.С параметрами занком плохо, поэтому просто проверяю правильность данных и "неправильные" символы заменяю на "правильные".
2.Ковычки в Kassa[ToDevice.i,ToDevice.j].Name быть не могут, это я контролирую.
А глюк именно BDE потому, что нет никакой системы! Я в режиме отладки все запросы просмотрел. Все корректно.
У меня такое ощущение, что при поступлении в 1 сек 5 - 10 запросов начинается беда.
Может нужно настройк в BDE сделать?
← →
sniknik (2004-02-09 14:38) [3]> 1.Ошибка "Access Vialation ...".
обрашение к несушествуюшим обьектам
> Kassa[ToDevice.i,ToDevice.j].Name
> Kassa[ToDevice.i,ToDevice.j].Client.Num
обьекты
замени на константы(так чтобы все данные тобой в строке запроса прописались гарантировано, вместо Kassa[ToDevice.i,ToDevice.j].Name
подставь Str1 к примеру и т.д.) и проверь кто на самом деле виноват.
← →
MasterDenis (2004-02-09 14:53) [4]Так ведь ошибка вылетает строго на Form1.Query1.ExecSQL;
Я сейчас ее запрятал:
try
Form1.Query1.ExecSQL;
except
end;
И все ОК.
А так ошибка вылезала бы в строке
Form1.Query1.SQL.Add("VALUES ("" + Kassa[ToDevice.i,ToDevice.j].Name + "","" + Str1 + "","" + Str2 + "","" + IntToStr(Kassa[ToDevice.i,ToDevice.j].Client.Num) + "","+1")");
← →
Anatoly Podgoretsky (2004-02-09 15:02) [5]Sandman25 © (09.02.04 13:16) [1]
А на кого еще валить, не на себя же?
← →
MasterDenis (2004-02-09 15:23) [6]Вам смешно... А у меня вилы из бока торчат...
← →
Sandman25 (2004-02-09 15:26) [7]Если в секунду выполняется 5-10 запросов, то нужно познакомиться с параметрами, и использовать параметризованный запрос. Глядишь, и BDE перестанет "глючить"...
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.03.05;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.007 c