powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / _RecordsetPtr и SCOPE_IDENTITY
5 сообщений из 5, страница 1 из 1
_RecordsetPtr и SCOPE_IDENTITY
    #33044603
_Viktor_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Привет всем
СУБД MS SQL Server
После добавления новой записи необходимо определить
значение PK новой записи

Добавляю вот так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
_RecordsetPtr	ebRecS;

ebRecS->Open("INSERT INTO CLIENTS (NAME, ADDRESS, TELEPHONE, NOTE) "
                     "VALUES ('asd','asfg','asfg','adfg');"
                     "SELECT SCOPE_IDENTITY();",                         
                     "AP;",
                     adOpenStatic, 
                     adLockOptimistic, 
                     adCmdText); 
а теперь хотелость бы узнать PK
в CRecordset можно с помощью GetFieldValue
но в _RecordsetPtr такой функции нет

Буду очень благодарин за хороший совет или пример.
...
Рейтинг: 0 / 0
_RecordsetPtr и SCOPE_IDENTITY
    #33044696
_Viktor_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну неужели ни кто не знает как счисать значение
возвращаемое SCOPE_IDENTITY с помощью _RecordsetPtr.
...
Рейтинг: 0 / 0
_RecordsetPtr и SCOPE_IDENTITY
    #33045446
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты же написал после вставки
SELECT SCOPE_IDENTITY()
Оно сформирует обычный набор данных (result set) и его на клиенте нужно обработать обычными способами, как обычный набор данных - профетчить, сбиндив на переменные.

Что касается задачи вцелом - я бы посоветовал сделать из этого хранимую процедуру и возвращать значение ключа новой записи через выходной параметр. Кстати, его на клиенте получить (в OLEDB и ODBC), насколько я помню, немного легче.
...
Рейтинг: 0 / 0
_RecordsetPtr и SCOPE_IDENTITY
    #33055441
_Viktor_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
RecordsetPtr	ebRecS;

ebRecS->Open("INSERT INTO CLIENTS (NAME, ADDRESS, TELEPHONE, NOTE) "
                     "VALUES ('asd','asfg','asfg','adfg');"
                     "DECLARE	@IDENT INT; "
	        "SELECT @IDENT  = @@IDENTITY;" 
                     "INSERT INTO ORDERS(CLIENT, ....)"
                     "VALUE (@IDENT, ....)",
                   
                     adOpenStatic, 
                     adLockOptimistic, 
                     adCmdText); 
...
Рейтинг: 0 / 0
_RecordsetPtr и SCOPE_IDENTITY
    #33056307
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно посадить трггер на вставку и печать сообщение о последнем id.
а в возвоащающемся рекордсете читать это значние
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / _RecordsetPtr и SCOPE_IDENTITY
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]