Форум: "Базы";
Текущий архив: 2002.10.24;
Скачать: [xml.tar.bz2];
ВнизПочему зависает приложение, после 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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.013 c