Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

установить курсор в датасете после 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]

все интересное за точками спрятал, и как оно там в базе, нам не говоришь.


Наверх

Титульная страница Поиск, карта сайта Написать письмо