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

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

Identity в базе SQLServer [D6, MSSQL]


Alexey ©   (2004-04-06 18:12:00) 

Как вытащить индентификатор из таблицы после выполнения ADOQeery в Дельфях6 функция в кваери isnert, а также записать его в параметр, база SQL ???


Alexey   (2004-04-07 17:54:00) [1]

Всем спасибо ... ошибка была в другой ереси ... слега напутал ... кстати один из правильных вариантов такой:

В кваери
select @@IDENTITY AS ID

В Дельфях
параметр:=ADOQuery['ID']

параметр: integer


roottim   (2004-04-07 09:52:00) [2]

> RETURNING id INTO :IDBaseэто по ОРАКЛУ..

а МССКЛ блокировочник и после вставки , как я понимаю, необходимо именно прочитать эту @@IDENTITY, после чего  блокировка снимется и другие транзакции продолжат вставку.. ну или что там...


Alexey   (2004-04-07 09:22:00) [3]

Сервер MS SQL 2000 вариант:

INSERT INTO orientir_bases (NAME)
     VALUES ('')
     RETURNING id INTO :IDBase

не пашет, выдает ошибку какую забыл ... потом посмотрю. На счет @@scope_identity не знаю чуть позже посмотрю


KSergey   (2004-04-07 07:50:00) [4]

> Black Krok   (06.04.04 18:19)

Это синтаксис для како сервера? Какой версии?

Вообще код примерно такой:

INSERT (...) VALUES (...)
SELECT @@IDENTITY

Для MS SQL 2000 вместо @@IDENTITY надо использовать @@SCOPE_IDENTITY (примерно так, справки под рукой нет)

Тогда запрос вернет одну запись из одного столбца, в которм будет последнее ID

Ну и в случае MS SQL ниже 2k почитать об ограничениях на @@IDENTITY


Black Krok   (2004-04-06 18:19:00) [5]

У меня сработал такой вариант:


INSERT INTO orientir_bases (NAME)
      VALUES ('')
      RETURNING id INTO :IDBase


При добавлении срабатывает триггер, записывающий в поле id значение из счетчика. После отработки команды в параметре IDBase
я получаю содержимое этого поля


Наверх

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