![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как в IBDataSet удалить запись? [D6, IB6.x, FireBird]
кило © (2003-02-11 18:01:00)как удалить запись, т.е. как передать параметр в DeleteSQL и потом его запустить?
Жук (2003-02-12 13:00:00) [1]Это вопрос принципиального понимания назначения компонентов доступа. Теоретически в DeleteSQL можно всунуть любой запрос, и он будет выполнятся при DataSet.Delete.
Кило (2003-02-12 11:43:00) [2]2 Жук
Этот же параметр и в DeleteSQL, InsertSQL...
Жук (2003-02-12 11:39:00) [3]>>кило
>>ParamByName("ID").AsInteger := 5;
Кило (2003-02-12 11:12:00) [4]2 АлександрИзПерми
Ок, тут я не прав, с таким позиционированием курсора, сделаю по ID, но как нормально передать параметр.
АлександрИзПерми (2003-02-12 11:08:00) [5]Если "NAME_OPERATION"не является первичным ключом, вам нехорошо.
При работе с SQL без первичного ключа делать нечего.
Кило(АУ) (2003-02-12 10:51:00) [6]Ну что разве никто не столкнулся с такой проблемой?
Кило (2003-02-12 10:01:00) [7]5 я написал от фонаря, у меня там выбирается из списка, который актуальный на даное время.
ЮЮ (2003-02-12 09:59:00) [8]>Кило (12.02.03 09:43)
А если такой записи нет, то удалится какая-то другая :-)
Кило (2003-02-12 09:57:00) [9]Нет, а что как-то передать ID в DeleteQL нельзя, кроме позиционирования?
Ну там типа:
ParamByName("ID").AsInteger := 5;
Жук (2003-02-12 09:53:00) [10]Если в DeleteSQL прописано удаление текущей записи, то что же вы хотите ? Удаляйте кверёй.
Кило (2003-02-12 09:43:00) [11]Ну я делаю так:
with dm.IBDataSet do
begin
Locate("NAME_OPERATION",Edit1.Text,[]);
Delete;
end;
Но это же изврат. А как передать ID, что другим способом нельзя как позиционированием курсора?
Johnmen (2003-02-12 00:19:00) [12]Стандартное применение
DELETE FROM <...> WHERE ID=:ID
где :ID - параметр, значение которого берется из текущей записи IBDataSet"а для поля с именем ID (обычно уникально).
Запускается автоматом при выполнении метода IBDataSet.Delete.