Вниз
Скачать: CL | DM;

TADOCommand.Execute и возвращаемый им RecordSet   Найти похожие ветки 

 
Maxim Volobuev   (2004-04-19 15:35) [0]

Мастера, помогите примерчиком на такую тему: выполняю ADOCommand.Execute с Insertом в таблицу и мне нужно получить свежевставленную запись. Но пример из справки по Execute ADODataSet1.RecordSet := ADOCommand1.Execute; не работает, говорит, что RecordSet должен быть открыт, причем говорит это вне зависимости от того, открыт ADODataSet1 или нет.
Кто это уже делал, напишите пример, как правильно работать с возвращаемым RecordSet.


 
stone ©   (2004-04-19 15:40) [1]

ADODataSet1.RecordSet := ADOCommand1.Execute срабатывает только втом случае, если ADOCommand1.CommandText := "select ...
т.е. результат выполнения обязательно должен вернуть набор данных.


 
Ega23 ©   (2004-04-19 15:45) [2]

но ты можешь объединить INSERT и SELECT в одну транзакцию

Set NoCount ON
Insert into ... Values .....
Set NoCount OFF
Select ... from .... where ....


 
Maxim Volobuev   (2004-04-19 15:59) [3]

Да в общем то дело в том, что в таблице есть Identity поле, которое само проставляется SQL-сервером. И сразу после Insert мне нечего писать в where, я просто не знаю какое значение сервер присвоил этому полю.


 
KSergey ©   (2004-04-19 16:03) [4]

Использовать @@IDENTITY или @@SCOPE_IDENTITY в зависимости от версии сервера (2k - @@SCOPE_IDENTITY, название точно не помню)


 
Maxim Volobuev   (2004-04-19 16:06) [5]

Использовать где!!??


 
Ega23 ©   (2004-04-19 16:10) [6]

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:39) [7]

Огромное спасибо, все заработало!


 
KSergey ©   (2004-04-19 17:00) [8]

Только если сервер 2k - обязательно прочитайте о различиях между @@IDENTITY и @@SCOPE_IDENTITY. Это очень важно!

PS
А если бы сразу почитать - то и

[5] Maxim Volobuev   (19.04.04 16:06)
> Использовать где!!??

не было бы, т.к. там все написано.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.023 c
1-1083497726
anod
2004-05-02 15:35
2004.05.16
Список фаилов в меню


3-1082108784
Dr Andrey
2004-04-16 13:46
2004.05.16
Многопользовательский доступ к mdb


1-1083512222
novill
2004-05-02 19:37
2004.05.16
Уважаемые мастаки, подскажите как внутри функции узнать ее имя?


14-1082704706
paul_k
2004-04-23 11:18
2004.05.16
Есть вакансия в Москве


3-1082370014
Filat
2004-04-19 14:20
2004.05.16
Как sql-ем Дельфийским выбрать записи, скажем с 20-й по 52?




   Наверх