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].


Anatoly Podgoretsky   (2008-08-01 09:43:00) [1]

Ну так в Акцесс, что по отдельности, что вместе результат одинаков - это же файлсерверная БД

По идеологии SQL как было задумано голубым гигантом и как позволяла тогда техника (телетайпы) надо было как то завершать инструкцию, что бы ее можно было выполнить, для этой цели была выбрана точка с запятой.

При программном решение это нонсенс, если только не рассматривать это как набор независимых инструкций, но система поддержки должна поддерживать это.

А вот конструкция, для T-SQL или подобных

инструкция1
...
инструкция N


Это одна инструкция и естественно она выполняется как единое целое, на этом кстати основан и SQL Ejection

Не уверен, что это было хорошей идеей.


Нат   (2008-07-31 18:09:00) [2]

В акцессе можно ставить точку с запятой после запроса, однако акцесс не терпит после  больше ничего, т.к. считает ";" завершением инструкции.
Не прокатывает такая конструкция.

Вобчем и без запятой тож не хочет.
Ток по-отдельности.


Anatoly Podgoretsky   (2008-07-31 13:44:00) [3]

Ну вообще то тема по Акцесс.
Ладно не знаешь, но не так это и важно. Когда будет важно, то проверка займет несколько секунд.


Ega23   (2008-07-31 11:19:00) [4]


> Акцесс требует точки с запятой между частями?


Ну это не для Access, это TSQL. А точка с запятой - это уже просто тупо привычка. Многие СУБД требуют. TSQL не требует, но ставить можно.


Anatoly Podgoretsky   (2008-07-31 11:14:00) [5]

> Ega23  (31.07.2008 10:40:53)  [53]

Акцесс требует точки с запятой между частями?


Ega23   (2008-07-31 10:40:00) [6]


> А как тебе удалось загнать обе команды в один запрос?


А в чём проблема?


ADODataSet1.CommandText := 'Set NoCount ON;
Insert into xxx (aName) Values ('111');
Insert into xxx (aName) Values ('222');
Insert into xxx (aName) Values ('333');
Insert into xxx (aName) Values ('444');
Insert into xxx (aName) Values ('555');
Insert into xxx (aName) Values ('666');
Set NoCount OFF;

Select * from xxx';

ADODataSet1.Open;


Нат   (2008-07-31 03:15:00) [7]

MsGuns

> cm.CommandText := 'Insert ...   '+' Select @@indentity';

А как тебе удалось загнать обе команды в один запрос?
И на какой версии Акцесса?


Игорь Шевченко   (2008-07-30 15:40:00) [8]

Ega23 ©   (30.07.08 15:27) [50]

"Старайтесь избегать «оффтопиков». Добавляя свое сообщение, убедитесь, что оно соответствует обсуждаемой теме"
http://www.delphimaster.ru/forums.shtml#rule


Ega23   (2008-07-30 15:27:00) [9]


> Oracle XE наше все :)


Ацтой Оракл, ini-файлы рулят.


Игорь Шевченко   (2008-07-30 15:15:00) [10]

Sergey13 ©   (30.07.08 15:10) [48]

> Надо НЕ использовать Access, тогда заработает RETURNING


Абсолютно верно - Oracle XE наше все :) К тому же там есть средство миграции из Access-а, если мне память не изменяет


Sergey13   (2008-07-30 15:10:00) [11]

> [47] Игорь Шевченко ©   (30.07.08 14:55)

Надо НЕ использовать Access, тогда заработает RETURNING. 8-)


Игорь Шевченко   (2008-07-30 14:55:00) [12]

Надо использовать RETURNING. Это правда тоже не в Access-е, но какая нахрен разница ?


Anatoly Podgoretsky   (2008-07-30 14:48:00) [13]

> stas  (30.07.2008 13:56:45)  [45]

Читай все обсуждение.


stas   (2008-07-30 13:56:00) [14]

Anatoly Podgoretsky ©   (30.07.08 13:30) [40]
где там?
Anatoly Podgoretsky ©   (30.07.08 13:30) [40]-[43]
Разошелся...


Нат   (2008-07-30 13:40:00) [15]

Серверный курсор имеет место быть, однако с закладки пожелали счастливо оставаться.
Без закладко грид ничего не смог отобразить.
На этом и расстались.
С серверной стороной в Акцессе.


Anatoly Podgoretsky   (2008-07-30 13:34:00) [16]

Кстати а вас не очень занесло с триггерами в Акцесс?


Anatoly Podgoretsky   (2008-07-30 13:33:00) [17]


> Разве что прямо на серверной стороне... ну там свои штуки.

Где ты нашел серверную сторону в Акцесс?


Anatoly Podgoretsky   (2008-07-30 13:32:00) [18]

> Нат  (30.07.2008 12:26:36)  [36]

А нафига Insert - ты думаешь факт определения ИД изменится, если делать вставку с помощью запроса.


Anatoly Podgoretsky   (2008-07-30 13:30:00) [19]

> stas  (30.07.2008 11:51:34)  [34]

А там он определен, если ты не заметил.


stas   (2008-07-30 13:14:00) [20]

есть @@Identity, чего еще заморачиваться?


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

Наверх

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