powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как пллучить auto-ID только что добавленной строки (IDENTITY(1,1)) (+)
2 сообщений из 2, страница 1 из 1
Как пллучить auto-ID только что добавленной строки (IDENTITY(1,1)) (+)
    #32024009
Altruist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Использую VC++, ODBC


Кладу строку:

CString sql;

sql="INSERT INTO lists (name) VALUES ('";
sql+=name; // name="lalala"
sql+="')";

database->ExecuteSQL(sql);

В таблице есть поле с авто увеличением, создавал так:
database->ExecuteSQL("CREATE TABLE lists (name_id INT IDENTITY(1,1) NOT NULL, name TEXT NOT NULL)");

Всё работает, теперь хочу получить значение name_id присвоенное автоматически.
Как это можно сделать используя CRecordset ?

---------------------------------------
CRecordset rs;
rs.Open(CRecordset::forwardOnly, "SELECT * FROM lists");
^^^^^^^^^^^^^^^^^^^^^^^
CDBVariant val;
rs.MoveLast();
rs.GetFieldValue("name_id",val);

и нужное в:
val.m_iVal
---------------------------------------
Но проблема в том, что ODBC драйвер не поддерживает ничего кроме CRecordset::forwardOnly,
и rs.MoveLast() я не могу использовать.

В DAO я делал проще - использовал закладки:

CDaoRecordset rs;
COleVariant CValue;
...
// устанавливаем созданное текущим
rs.SetBookmark( lists->GetLastModifiedBookmark() );
rs.GetFieldValue("name_id",CValue);

и нужное в:
CValue.lVal

но: добавлял тоже через rs, а в CRecordset НЕТ SetFieldValue("name",CValue),
заместо неё видел пример с применением Win-интерфейса обмена - это кривь какая-то...

помогите, что сделать?
Цель, думаю, ясна: добавить строку, и получить тут же выданный ей auto-ID - для ADO
я написал быстрый пример, а вто как с ODBC и прородителем CDaoRecordset делать?
(ну, можно, конечно сделать SELECT с условием name = 'токо добавлял, он мне известен',
но это же поиск - можно же как-то быстрей?)
...
Рейтинг: 0 / 0
Как пллучить auto-ID только что добавленной строки (IDENTITY(1,1)) (+)
    #32024028
Joseph Sweik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SELECT @@IDENTITY
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как пллучить auto-ID только что добавленной строки (IDENTITY(1,1)) (+)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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