Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / получение значения автоинкрементного поля (IDENTITY) / 4 сообщений из 4, страница 1 из 1
10.10.2003, 11:16
    #32289690
Alexey Arnautov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
получение значения автоинкрементного поля (IDENTITY)
Есть таблица, созданная так:
create table my_table (id bigint IDENTITY (1,1), name char (255))

Когда я добавляю из VB значения с пом-ю следующего кода

Код: plaintext
1.
2.
3.
4.
5.
Conn.Open  "provider=SQLOLEDB;Data Source=myhost;Initial Catalog=mydb;Integrated Security=SSPI;" 
SQL =  "Select * from my_table" 
Rs.Open SQL, Conn, adOpenDynamic, adLockOptimistic
Rs.AddNew
Rs( "name" ).Value =  "sdfsdfsdf" 


то сразу хочу получить значение поля id, для моего нового добавления. Причем штука вида
Код: plaintext
1.
2.
3.
my_current_id = Rs.Fields( 0 ) 
' или
my_current_id = Rs.Fields( "id" ) 


возвращают пустую строку, даже в том случае, если после первого куска кода делать
Код: plaintext
Rs.update


Как же получить новое значение id ?
...
Рейтинг: 0 / 0
10.10.2003, 11:19
    #32289695
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
получение значения автоинкрементного поля (IDENTITY)
используй клиентский курсор + статический набор записей
...
Рейтинг: 0 / 0
10.10.2003, 11:41
    #32289733
Alexey Arnautov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
получение значения автоинкрементного поля (IDENTITY)
Т.е. так?

Код: plaintext
1.
Conn.CursorLocation = adUseClient
Rs.Open SQL, Conn, adOpenStatic, adLockPessimistic


Спасибо, помогло. Работает после rs.update
Еще раз спасибо.
...
Рейтинг: 0 / 0
10.10.2003, 11:49
    #32289749
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
получение значения автоинкрементного поля (IDENTITY)
Код: plaintext
Conn.CursorLocation = adUseClient
это приведет к тому, что все recordset'ы ,будут иметь клентский курсор по умолчанию. Если тебе нужно только для одного recordset'а, то
Код: plaintext
Rs.CursorLocation = adUseClient
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / получение значения автоинкрементного поля (IDENTITY) / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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