Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как узнать id созданой записи?

520
20 декабря 2007 года
inkognitum
155 / / 03.05.2006
Добрый день.

Не могли бы подсказать как мне узнать id созданой записи?
Допустим я создал запись с помощью запроса используя ADOQuery. сразу после выполнения запроса о создании возможно ли получить id только что созданной записи?

Заранее спасибо.
11
20 декабря 2007 года
oxotnik333
2.9K / / 03.08.2007
Цитата: inkognitum
Добрый день.

Не могли бы подсказать как мне узнать id созданой записи?
Допустим я создал запись с помощью запроса используя ADOQuery. сразу после выполнения запроса о создании возможно ли получить id только что созданной записи?

Заранее спасибо.



 
Код:
ADOQuery->SQL->Text = "INSERT INTO TableName (Field1, Field2, ... FieldN) values (:Val1, :Val2, :ValN)SELECT SCOPE_IDENTITY() as ID_NewRec";
ADOQuery->Active = true;
int ID = ADOQuery->FieldByName("ID_NewRec")->AsInteger; // при условии что ключ int
//ADOQuery->ExecSQL(); не использовать, т.к. ниче не вернет
520
20 декабря 2007 года
inkognitum
155 / / 03.05.2006
Не могли бы уточнить запрос.
Сделал точно так же... ругается что в инструкции запроса SQL не проставлен символ ";"
ставлю перед словом "SELECT" ругается что обнаружен лишний символ за инструкцией SQL запроса, переношу ";" в самый конец ругается что не проставлен символ ";"
Делаю запрос вообще без SELECT......
ругается что мол процедура не предназначена чтобы возвращалось более одного параметра.. или что то типа того.
11
20 декабря 2007 года
oxotnik333
2.9K / / 03.08.2007
Цитата: inkognitum
Не могли бы уточнить запрос.
Сделал точно так же... ругается что в инструкции запроса SQL не проставлен символ ";"
ставлю перед словом "SELECT" ругается что обнаружен лишний символ за инструкцией SQL запроса, переношу ";" в самый конец ругается что не проставлен символ ";"
Делаю запрос вообще без SELECT......
ругается что мол процедура не предназначена чтобы возвращалось более одного параметра.. или что то типа того.




вот полностью рабочий код из моего проекта:

 
Код:
insert into base (ParentIndex, Seckey, ItemLevel, Pos, ItemName, Vers) values (:@PI, :@SC,:@IL, :@P, :@IN, :@V)
SELECT SCOPE_IDENTITY() as i


ЗЫ: СУБД MS SQL Server 2005
520
20 декабря 2007 года
inkognitum
155 / / 03.05.2006
Я использую mdb базу... может из-за этого.
я попробовал просто запрос SELECT SCOPE_IDENTITY()

ругается... говорит мол неопознаная команда - SCOPE_IDENTITY().

(((
11
20 декабря 2007 года
oxotnik333
2.9K / / 03.08.2007
Цитата: inkognitum
Я использую mdb базу... может из-за этого.
я попробовал просто запрос SELECT SCOPE_IDENTITY()

ругается... говорит мол неопознаная команда - SCOPE_IDENTITY().

(((



вот из акссесовского хелпа

[quote=MSAccess Help]
Чтобы найти последнее значение, использованное для столбца с автоматическим шагом, можно воспользоваться инструкцией SELECT IDENTITY. Название таблицы задать нельзя. Будет получено значение из последней обновленной таблицы, содержащей столбец с автоматическим шагом.
[/quote]

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог