![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TADOCommand.Execute и возвращаемый им RecordSet [D7, MSSQL]
Maxim Volobuev © (2004-04-19 15:35:00)Мастера, помогите примерчиком на такую тему: выполняю ADOCommand.Execute с Insertом в таблицу и мне нужно получить свежевставленную запись. Но пример из справки по Execute ADODataSet1.RecordSet := ADOCommand1.Execute; не работает, говорит, что RecordSet должен быть открыт, причем говорит это вне зависимости от того, открыт ADODataSet1 или нет.
Кто это уже делал, напишите пример, как правильно работать с возвращаемым RecordSet.
KSergey (2004-04-19 17:00:00) [1]Только если сервер 2k - обязательно прочитайте о различиях между @@IDENTITY и @@SCOPE_IDENTITY. Это очень важно!
PS
А если бы сразу почитать - то и
[5] Maxim Volobuev (19.04.04 16:06)
> Использовать где!!??
не было бы, т.к. там все написано.
Maxim Volobuev (2004-04-19 16:39:00) [2]Огромное спасибо, все заработало!
Ega23 (2004-04-19 16:10:00) [3]Set NoCount ON
Declare @X int
Insert into ... Values .....
SELECT @X=@@IDENTITY
Set NoCount OFF
Select ... from .... where .... and ID=@X
Maxim Volobuev (2004-04-19 16:06:00) [4]Использовать где!!??
KSergey (2004-04-19 16:03:00) [5]Использовать @@IDENTITY или @@SCOPE_IDENTITY в зависимости от версии сервера (2k - @@SCOPE_IDENTITY, название точно не помню)
Maxim Volobuev (2004-04-19 15:59:00) [6]Да в общем то дело в том, что в таблице есть Identity поле, которое само проставляется SQL-сервером. И сразу после Insert мне нечего писать в where, я просто не знаю какое значение сервер присвоил этому полю.
Ega23 (2004-04-19 15:45:00) [7]но ты можешь объединить INSERT и SELECT в одну транзакцию
Set NoCount ON
Insert into ... Values .....
Set NoCount OFF
Select ... from .... where ....
stone (2004-04-19 15:40:00) [8]ADODataSet1.RecordSet := ADOCommand1.Execute срабатывает только втом случае, если ADOCommand1.CommandText := 'select ...
т.е. результат выполнения обязательно должен вернуть набор данных.