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

Вниз

Глючит 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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.014 c
14-12533
Goida
2004-02-12 11:35
2004.03.05
Система принятия решений


1-12342
Ilg
2004-02-06 10:00
2004.03.05
Открытие браузера


3-12296
Maxim Volobuev
2004-02-06 15:07
2004.03.05
Литовские и русские буквы в DB


11-12304
Avakss
2003-06-17 14:02
2004.03.05
KOL ServerSocket , ClientSocket


1-12410
Plt
2004-02-23 13:16
2004.03.05
TreeView