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

Вниз

Почему зависает приложение, после SQL запроса?   Найти похожие ветки 

 
dimonf ©   (2002-10-03 16:46) [0]

Удаляю запись из базы, после удаление последней записи приложение уходит в никуда и прога зависает. Почему такой нонсенс???
...
var Name, Detal, Nomer : String;
...
IF Query1.FieldByName("ID").Value = Null then
begin
MessageDlg("База пуста.", mtInformation, [mbOk], 0);
Exit;
end;
Name := ComboBox1.Items.Strings[ComboBox1.ItemIndex];
Detal := StringGrid1.Rows[StringGrid1.Row].Strings[0];
Nomer := StringGrid2.Rows[StringGrid2.Row].Strings[0];
IF MessageBox(MainForm.Handle,
PChar("Удаляете: "+Detal+" Вы уверены?"),
PChar("База данных"), 4) = 6 then
begin
Query1.Close;
Query1.SQL.Clear;
Query1.SQL.ADD("Delete From ""+MainForm.FDir+"\Base\Katalog.db" Where (Name = "+QuotedStr(Name)+" and Detal = "+QuotedStr(Detal)+" and Nomer = "+QuotedStr(Nomer)+")");
Query1.ExecSQL;
end;


 
Prooksius ©   (2002-10-03 16:54) [1]

Удаляется именно последняя строчка и сразу после этого завис?
или
Ты пытаешься удалить даже когда уже ничего нет, и прога виснет?
Что в SQL Query1 на момент самого первого IF?


 
dimonf ©   (2002-10-03 17:46) [2]

Схема примерная такая: запись одна она удаляеться и дальше висяк. :(
Но если, например две записи, то удаляеться запись и все o"k.


 
Prooksius ©   (2002-10-03 17:50) [3]

Что в SQL Query1 на момент самого первого IF?
Удаление данных происходит из выборки на основе ее?
Логичнее проверять отсутствие строк в датасете (query) количеством строк в датасете (query), а не нулевостью поля.


 
Best Before 2024   (2002-10-03 17:53) [4]

IF Query1.FieldByName("ID").Value = Null then

Вообще должна быть ошибка: Both Bof and Eof is true...


 
Prooksius ©   (2002-10-03 17:58) [5]

И, в коце концов, так писать нельзя. Надо так:
IF Query1.FieldByName("ID").IsNull then...


 
Johnmen ©   (2002-10-03 18:22) [6]

>Prooksius © (03.10.02 17:58)
>IF Query1.FieldByName("ID").IsNull then...

А ты попробуй...На пустом НД...И что получается ?...




 
Best Before 2024   (2002-10-03 18:24) [7]

dimonf © (03.10.02 16:46)

Больше кода в студию!!!!
Может, у тебя еще там что-нибудь страшное на месте твоих ...


 
Prooksius ©   (2002-10-03 19:09) [8]

2 Johnmen © (03.10.02 18:22)
Да я и не предлагаю это, я просто написал, как правильно на нулевость поле проверить конкретно в этой строчке кода.
Конечно так отсутствие строк в таблице/запросе не проверяют, что я и написал тут:
Prooksius © (03.10.02 17:50)


 
dimonf ©   (2002-10-04 09:30) [9]

Prooksius - я не понял, что это за команда IsNull,
при использовании ее в моем коде Delphi ругаеться:
[Error] BaseDetal_Pas.pas(273): Undeclared identifier: "IsNull"
Почему?

Я нашол в чем у меня была проблема. :)
Я просто сылалса не на ту форму: MainForm.Handle. А надо было: TableOrder.Handle. Сейчас все o"k.



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

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

Наверх




Память: 0.48 MB
Время: 0.024 c
3-78292
Новечек.
2002-10-03 16:02
2002.10.24
Создание Таблиц


1-78416
cosinus
2002-10-15 16:37
2002.10.24
Как избавиться от системного beep?


6-78572
knyaz17
2002-08-20 14:28
2002.10.24
Вопрос по NWLib.(библиотека для Nowell).


1-78512
FREEMAX
2002-10-14 01:49
2002.10.24
Очень нада, помогите


3-78216
RomanIz
2002-09-30 19:22
2002.10.24
Таблица в памяти