![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
установить курсор в датасете после insert
LDV © (2011-11-25 12:40:00)СУБД Paradox.
Есть Query1, связанный с DBGrid, который отображает содержимое некоторой таблицы . Нужно сделать, чтобы при добавлении новой записи INSERT-запросом (Query2), курсор в выборке Query1 выставлялся на добавленную запись. Как это правильно сделать?
Ничего лучше, чем нижеприведенный вариант, не придумал, но он мне кажется хреновым:
// ...
Query2.SQL.Text := 'INSERT INTO products (...) VALUES(...); SELECT @@identity';
// ...
Query2.ExecSQL;
ProductId := Query2.Fields[0].AsInteger;
Query1.Locate('Id', ProductId, []);
Anatoly Podgoretsky (2011-11-25 13:00:00) [1]С Парадоксом можно работать с таблицей, а не запросами, навигационными методами, а в некоторых случаях и нужно. Например получение автоинкриментного номера.
Anatoly Podgoretsky (2011-11-25 12:54:00) [2]1. Интереснее хачем обращение к закрытой таблице Fields[0].AsInteger, а после ExecSQL оно закрыто
2. зачем обращение к необновленой таблице Query1.Locate, данные там старые, хотя может повезет
LDV (2011-11-25 12:51:00) [3]
> зачем запрос на вставку при уже открытой таблице?
а как тогда, добавлять через append, post в открытом датасете?
sniknik (2011-11-25 12:48:00) [4]зачем запрос на вставку при уже открытой таблице?
Anatoly Podgoretsky (2011-11-25 12:44:00) [5]> LDV (25.11.2011 12:40:00) [0]
все интересное за точками спрятал, и как оно там в базе, нам не говоришь.