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

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

получить Insert Id после запроса INSERT... [D7, MSAccess via Ado]


Страницы:   1 2 3

123456711 ©   (2008-07-18 13:40:00) 

... у базы Standart Jet DB (Access) через Ado.

Другими словами вставляю строку в таблицу у которой поле [id] - счетчик. Как получить значение этого счетчика после вставки?

Интересует все, кроме метода Select max([id]) FROM [SomeTable].


Johnmen   (2008-07-22 17:36:00) [41]


> Dmitry S ©   (22.07.08 15:02) [17]

В соответствии с нормами русского языка. Ничего более.
Для тех, кто писатель, не читатель.


Dmitry S   (2008-07-22 15:02:00) [42]


> Сказалиже, что про mssql речь не идет.

Сори за офтоп.
Вот мне интересно, откуда берется множественное число в подобных фразах. Для преувеличения значимости сказанного? Или это попытка манипуляции с помощью общества?


stas   (2008-07-21 12:07:00) [43]

Anatoly Podgoretsky ©   (21.07.08 11:06) [15]
Да знаю я.
Ну, раз уж затронули mssql....


Anatoly Podgoretsky   (2008-07-21 11:06:00) [44]

stas ©   (21.07.08 10:38) [14]
Чукча не читатель!
Сказали же, что про mssql речь не идет.


stas   (2008-07-21 10:38:00) [45]

ANB   (18.07.08 16:42) [11]
в mssql если есть триггер на таблице на insert в другую таблицу, то и в одной команде непоможет, нужно функцию использовать.


sniknik   (2008-07-18 16:54:00) [46]

> В мс скл не поможет.
а не про mssql разговор.

> Этого может быть недостаточно
достаточно с гарантией...


MsGuns   (2008-07-18 16:47:00) [47]

>sniknik ©   (18.07.08 16:30) [10]
>вовсе не обязательно мудрить с TADOCommand и _RecordSet -ом.

Не вижу ничего мудреного. В конце концнв можно написать универсальную функцию и подключить ее к делфе.

>что действительно нужно так это общий конект (TADOConnection) у обоих (TADOCommand, >TADODataSet) и синхронное выполнение запросов (что по умолчанию), ну и считывать сразу >после вставки само собой.

Этого может быть недостаточно


ANB   (2008-07-18 16:42:00) [48]


> sniknik ©   (18.07.08 16:30) [10]

В мс скл не поможет. Там только в одной команде должно идти.

В аксесс - не знаю.


sniknik   (2008-07-18 16:30:00) [49]

> Указанный селест должен следовать непосредственно после запроса на вставку в одном и том же TADOCommand, и считывать его через _RecordSet,
> полученный от него:
вовсе не обязательно мудрить с TADOCommand и _RecordSet -ом.
что действительно нужно так это общий конект (TADOConnection) у обоих (TADOCommand, TADODataSet) и синхронное выполнение запросов (что по умолчанию), ну и считывать сразу после вставки само собой.


stas   (2008-07-18 16:16:00) [50]

Anatoly Podgoretsky ©   (18.07.08 15:54) [7]
stas ©   (18.07.08 14:24) [6]


MsGuns   (2008-07-18 16:15:00) [51]

Указанный селест должен следовать непосредственно после запроса на вставку в одном и том же TADOCommand, и считывать его через _RecordSet, полученный от него:

var
 cm: TADOCommand;
 ds: TADOQuery;
..

cm := TADOCommand.Create(nil);
cm.Connecton := ..
cm.CommandText := 'Insert ...   '+' Select @@indentity';
ds := TADOQuery.Create(nil);
ds.recordset := cm.execute;
NewID :=  ds.recordset.Fields[0].AsInteger;
ds.Free;
cm.Free;

Try .. finally/except сами поставите ;)


Anatoly Podgoretsky   (2008-07-18 15:54:00) [52]

stas ©   (18.07.08 14:02) [3]
Ты укоряешь или хвастуешься незнанием?


stas   (2008-07-18 14:24:00) [53]

Palladin ©   (18.07.08 13:56) [2]
Работает! незнал.
sniknik ©   (18.07.08 14:09) [4]
ага :)


123456711   (2008-07-18 14:16:00) [54]


> Palladin ©   (18.07.08 13:56) [2]
>
> select @@Identity
>

Спасибо! Как раз то, что нужно!


sniknik   (2008-07-18 14:09:00) [55]

> Это Access
да, это все меняет... тогда надо select @@Identity


stas   (2008-07-18 14:02:00) [56]

Palladin ©   (18.07.08 13:56) [2]
Это Access


Сергей М.   (2008-07-18 13:56:00) [57]

А другие уникальные ключи у этой таблицы имеются ?
Допускается ли модификация структуры таблицы для решения задачи ?
Допускается ли одновременная работа с таблицей в контексте более чем одной транзакции одновременнно ?


Palladin   (2008-07-18 13:56:00) [58]

select @@Identity


Страницы:   1 2 3

Наверх

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