Текущий архив: 2004.01.13;
Скачать: CL | DM;
ВнизНе срабатывают запросы... Найти похожие ветки
← →
ДмитрийБ (2003-12-13 18:45) [0]три запроса на удаление записей составлены одинаково, но срабатывает только один
ss:="DELETE FROM sales WHERE ZAKAZ_CODE="+
"(SELECT ZAKAZ_CODE FROM bl_zakaz WHERE "+
"CUST_CODE=""+sCod+"")";
// строка получается: DELETE FROM sales WHERE ZAKAZ_CODE=(SELECT ZAKAZ_CODE FROM bl_zakaz WHERE CUST_CODE="12345678"
dMain.qrWork.SQL.Clear;
dMain.qrWork.SQL.Add(ss);
dMain.qrWork.ExecSQL; //не срабатывает!
ss:="DELETE FROM bl_zakaz WHERE CUST_CODE=""+sCod+""";
// строка получается: DELETE FROM bl_zakaz WHERE CUST_CODE="12345678"
dMain.qrWork.SQL.Clear;
dMain.qrWork.SQL.Add(ss);
dMain.qrWork.ExecSQL; //здесь срабатывает!
ss:="DELETE FROM fio WHERE CODE=""+sCod+""";
// строка получается: DELETE FROM fio WHERE CODE="12345678"
dMain.qrWork.SQL.Clear;
dMain.qrWork.SQL.Add(ss);
dMain.qrWork.ExecSQL; //не срабатывает!
Заранее спасибо!
← →
ЮЮ (2003-12-15 03:11) [1]что значит "срабатывает" ?
Количество удаленных записей смотри в dMain.qrWork.RowsAffected,
Если оно равно нулю, значит нет строк, удовлетворяющих учловию.
Попробуй так:
ss:="FROM sales WHERE ZAKAZ_CODE=" +
"(SELECT ZAKAZ_CODE FROM bl_zakaz WHERE "+
"CUST_CODE=" + QuotedStr(sCod) + ")";
// строка получается: FROM sales WHERE ZAKAZ_CODE=(SELECT ZAKAZ_CODE FROM bl_zakaz WHERE CUST_CODE="12345678"
dMain.qrWork.SQL.Text := "SELECT COUNT(*) as CNT " + ss";
dMain.qrWork.Open;
if dMain.qrWork.Fields[0].asInteger = 0 then
Application.MessageBox(ss, "Нет строк для удаления", 0)
else begin
dMain.qrWork.SQL.Text := DELETE " + ss";
Main.qrWork.ExecSQL;
Application.MessageBox(IntToStr(Main.qrWork.RowsAffected), "Удалено строк", 0)
end;
Страницы: 1 вся ветка
Текущий архив: 2004.01.13;
Скачать: CL | DM;
Память: 0.44 MB
Время: 0.012 c