Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Не срабатывают запросы... [D7, dBase, FoxPro]


ДмитрийБ ©   (2003-12-13 18:45:00) 

три запроса на удаление записей составлены одинаково, но срабатывает только один

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:00) [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;


Наверх

Титульная страница Поиск, карта сайта Написать письмо