Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как пллучить auto-ID только что добавленной строки (IDENTITY(1,1)) (+)
|
|||
|---|---|---|---|
|
#18+
Использую 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 = 'токо добавлял, он мне известен', но это же поиск - можно же как-то быстрей?) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.02.2002, 20:20 |
|
||
|
|

start [/forum/topic.php?fid=46&fpage=3500&tid=1823741]: |
0ms |
get settings: |
8ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
30ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
29ms |
get tp. blocked users: |
1ms |
| others: | 244ms |
| total: | 342ms |

| 0 / 0 |
