Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.03.2011, 18:12   #1
UNToxa
Пользователь
 
Регистрация: 11.01.2011
Сообщений: 13
По умолчанию Удалить через SQL строку в таблице ADOQuery1

Нужно удалить из таблицы строку где поле id=1. Использую следующий код, и получаю ошибку Missing SQL property
Код:
var update1:string;
s1:integer;
begin
ADOquery1.Close;
ADOquery1.SQL.Clear;
ADOquery1.Active:=True;
ADOquery1.Open;
s1:=1;

ADOQuery1.SQL.Text :='DELETE from table1 WHERE id = ' + IntToStr(s1) + ';';
ADOQuery1.ExecSQL;

ADOquery1.Active:=False;
ADOquery1.Active:=True;
end;

как сделать правильное удалени?
UNToxa вне форума Ответить с цитированием
Старый 19.03.2011, 18:31   #2
asmodey1
Подтвердите свой е-майл
 
Регистрация: 19.12.2010
Сообщений: 808
По умолчанию

Кошмар какой !
Перед заданием действия (команды SQL) принято закрывать квэрик. (Он, конечно, и сам закрывается, но так уж принято)
А вот это:
Код:
ADOquery1.Active:=False;
ADOquery1.Active:=True;
Вообще изврат - ведь все уже сделано при помощи ExecSQL... А при этом квэрик не открывается.
Так что если хотите осуществить визуальный контроль, то просто ADOquery1.Open (Кстати, согласитесь, что короче, чем ADOquery1.Active:=True, так же, как и ADOquery1.Close короче, нежели ADOquery1.Active:=False).
З.Ы.
А почему у вас компонент называется (по буквам) ADнольquery1 ? Это вы ему специально такое название дали - чтобы враги не догадались ?

Последний раз редактировалось asmodey1; 19.03.2011 в 18:41.
asmodey1 вне форума Ответить с цитированием
Старый 20.03.2011, 15:44   #3
UNToxa
Пользователь
 
Регистрация: 11.01.2011
Сообщений: 13
По умолчанию

В итоге получилось сделать так:

Код:
procedure TForm4.Button1Click(Sender: TObject);
var update1:string;
s1:integer;
begin
s1:=strtoint(DBEdit1.text);
try
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('DELETE FROM table1 WHERE id = ' + IntToStr(s1) + ';');
ADOQuery1.ExecSQL;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('SELECT * FROM table1');
ADOQuery1.Active:=True;
except
on e:Exception do
end;
Form2.ADOConnection1.Connected:=false;
Form2.ADOConnection1.Connected:=true;
ADOquery1.Active:=False;
ADOquery1.Active:=True;
Form2.ADOquery1.Active:=False;
Form2.ADOquery1.Active:=True;
close;
end;
UNToxa вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
автоматическое обновление таблице через запрос sql eda Microsoft Office Excel 8 19.04.2011 12:47
Проблема с запросом SQL ADOQuery1 UNToxa БД в Delphi 4 11.01.2011 21:46
VBA_макрос: удалить всю строку в таблице, если в ней есть слово "удалить" макарошка Microsoft Office Excel 15 05.10.2010 09:09
Выделить первую строку в таблице Polotenchik Microsoft Office Word 3 27.07.2010 22:41
удалить записи в таблице Dbf. pups БД в Delphi 7 15.12.2006 19:19