Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > Помогите с DELETE


Автор: kulikoff 28.12.2005, 21:01
Подключаюсь через BDE к базе данных на Oracle8i. Периодически возникает необходимость очистить таблицу базы. Пишу запрос вида Код:
QUERY1.SQL.TEXT:='Delete from ":ren4ora:BANKVUP"';

При запуске долго думает, потом выдает ошибку:
Цитата:
Multiple records found, but only one was expected

При этом у меня всё в порядке справами, SELECT, INSERT, UPDATE работают без проблем, так что с правами всё в порядке, даны привелегии администратора. Смотрел через SQLMonitor, там такая странная фигня получается, отчего-то строится запрос не совсем такой, как я его задаю, а вида:
Код:
DELETE FROM ":ren4ora:BANKVUP" where num1=1 and num1 is null and num2=2 and num2 is null ....


и так перечисляются все поля таблицы... Что это такое и как от него избавиться? Откуда берется это where? Пробовал через этого же юзера в PL/SQL Developer'e - спокойно запрос работает, без всяких матов...
Код:
query1.emptytable;
нельзя использовать, т.к. мне потом надо будет ещё включить условия для удаления...

Автор: iddqd 28.12.2005, 21:58
ИМХО, надо полностью запрос выстроить.
DELETE-FROM-WHERE
С таким оформлением.

Автор: kulikoff 28.12.2005, 22:34
Писал, ему всё пофиг, всё равно лепит свои условия непонятные и фигачит.... smile. Писал такое:
Код

Query1.SQL.Text:='delete from ":ren4ora:BANKVUP" where num=321334';

Не прохавал он такого...

Автор: Vit 29.12.2005, 05:34
Код

Query1.SQL.Text:='delete from :ren4ora:BANKVUP where num=321334';


Автор: SergeBS 29.12.2005, 16:45
Поиграйся со свойством RequestLive. Оно у тебя true. Угадал? Сделай наоборот.

Автор: kulikoff 30.12.2005, 20:28
Это свойство в BDE или в Delphi? Где его найти? Его надо установить в false?

Автор: SergeBS 10.1.2006, 10:39
kulikoff
Иди на DelphiKingdom и читай статью
"Архитектура BDE и его особенности при работе с SQL-серверами 2 ".
На будущее: не надо работать с SQL-серверами через BDE - не для того оно придумано было. Так что грабли, по большому счету, закономерные. Дальше будет хуже.

Автор: SergeBS 10.1.2006, 11:14
kulikoff
Пардон, перепутал - статья на DelphiWorld.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)