Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.09.29;
Скачать: CL | DM;

Вниз

Удаление с помощью SQL запроса   Найти похожие ветки 

 
Eagle Owl   (2003-09-07 22:17) [0]

Добрый вечер!
Помогите решить такую задачку...
Существует TQuery, TDataSource и TDBGrid.
Как сделать, чтобы при нажатии кнопки "Удалить"
из таблицы(базы данных) удалялась запись, которая
выделена в TDBGrid. А то чё-то я не могу разобраться,
как написать SQL запрос, который удаляет всего лишь
одну запись.
Спасибо!


 
MsGuns ©   (2003-09-07 22:35) [1]

// Если есть уник.иденитификатор (если нет, то в качестве указателя записи надо использовать уникальную комбинацию полей.

with Query2 do
begin
SQL.Clear;
SQL.Add("DELETE FROM MYTABLE");
SQL.Add(" WHERE UID=:uid");
ParamByName("uid").AsInteger := Query1.FieldByName("UID").AsInteger;
try
Prepare;
ExecSQL;
Query1.Close;
Query1.Open;
// Query1.Locate...; // НД -> на след.за уд.записью
except
ShowMessage("Не сложилось ;)");
end;
end;


 
Eagle Owl   (2003-09-07 22:38) [2]

А примерчик с уникальной комбинацией полей можно?
Уникального идентификатора нет, в том то и дело...


 
MsGuns ©   (2003-09-07 22:51) [3]

Вместо:
SQL.Add(" WHERE UID=:uid");
ParamByName("uid").AsInteger := Query1.FieldByName("UID").AsInteger;


написать:

SQL.Add(" WHERE (Fld1=:p1) AND (Fld2=:p2) AND (Fld3=:p3)");
ParamByName("p1").AsInteger := Query1.FieldByName("Fld1").AsInteger;

ParamByName("p2").AsDataTime := Query1.FieldByName("Fld2").AsDateTime;
ParamByName("p3").AsString := Query1.FieldByName("Fld3").AsString;

>Уникального идентификатора нет, в том то и дело...

Плохо дело - то *(


 
Eagle Owl   (2003-09-07 23:25) [4]

> MsGuns ©
Спасибо!



Страницы: 1 вся ветка

Текущий архив: 2003.09.29;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.046 c
1-96258
aldapooh
2003-09-17 13:33
2003.09.29
HTML Help


1-96266
explorer
2003-09-17 07:12
2003.09.29
Защита программ от взлома и копирования


4-96481
Интересующийся
2003-07-27 04:28
2003.09.29
Таймер реального режима и подсчет времени


14-96348
Феликс
2003-09-09 21:24
2003.09.29
Подскажите баннерообменную сеть (100x100)


14-96379
Mr@MsGuns
2003-09-11 11:35
2003.09.29
Все. Бросаем заниматься сексом. Прямо сейчас. Ни одной девочки.