![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Удаление с помощью SQL запроса [D6, Paradox]
Eagle Owl © (2003-09-07 22:17:00)
Добрый вечер!
Помогите решить такую задачку...
Существует TQuery, TDataSource и TDBGrid.
Как сделать, чтобы при нажатии кнопки "Удалить"
из таблицы(базы данных) удалялась запись, которая
выделена в TDBGrid. А то чё-то я не могу разобраться,
как написать SQL запрос, который удаляет всего лишь
одну запись.
Спасибо!
Eagle Owl (2003-09-07 23:25:00) [1]
> MsGuns ©
Спасибо!
MsGuns (2003-09-07 22:51:00) [2]
Вместо:
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 22:38:00) [3]
А примерчик с уникальной комбинацией полей можно?
Уникального идентификатора нет, в том то и дело...
MsGuns (2003-09-07 22:35:00) [4]
// Если есть уник.иденитификатор (если нет, то в качестве указателя записи надо использовать уникальную комбинацию полей.
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;