Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как задать курсор в ADO? / 9 сообщений из 9, страница 1 из 1
16.11.2011, 16:10
    #37529593
Николай А.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как задать курсор в ADO?
Есть такой код:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "servername", "username", "password"
Set cmdTemp = Server.CreateObject("ADODB.Command")
Set cmdTemp.ActiveConnection = conn

set records = conn.Execute ("SELECT ...")
Response.Write records.CursorType

Который выдаёт 0, то есть курсор задан adOpenForwardOnly

Я хочу изменить вид курсора, пробую делать это либо так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "servername", "username", "password"
Set cmdTemp = Server.CreateObject("ADODB.Command")
Set cmdTemp.ActiveConnection = conn

set records = Server.CreateObject("ADODB.recordset")
records.CursorType = adOpenDynamic
records = conn.Execute ("SELECT ...")
Response.Write records.CursorType

Получаю ошибку: "Ошибка выполнения Microsoft VBScript ошибка '800a01b6' .Объект не поддерживает это свойство или метод: 'CursorType'"

Либо так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Set conn = Server.CreateObject("ADODB.Connection")
conn.Open "servername", "username", "password"
Set cmdTemp = Server.CreateObject("ADODB.Command")
Set cmdTemp.ActiveConnection = conn

set records = conn.Execute ("SELECT ...")
records.CursorType = adOpenDynamic
Response.Write records.CursorType

Получаю ошибку: 'ADODB.Recordset ошибка '800a0e79'. Операция не допускается, если объект открыт.'

Как мне правильно задать вид курсора, отличный от курсора по умолчанию adOpenForwardOnly?
...
Рейтинг: 0 / 0
16.11.2011, 16:55
    #37529719
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как задать курсор в ADO?
Николай А.Операция не допускается, если объект открыт.'так а что непонятного в ошибке, вроде ж по-русски....

сначала надо менять курсор, а потом уже открывать рекордсет (execute)
...
Рейтинг: 0 / 0
16.11.2011, 17:15
    #37529767
Николай А.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как задать курсор в ADO?
Shocker.ProНиколай А.Операция не допускается, если объект открыт.'так а что непонятного в ошибке, вроде ж по-русски....

сначала надо менять курсор, а потом уже открывать рекордсет (execute)

А как это правильно написать? Какой код должен быть после "records.CursorType = adOpenDynamic"?
...
Рейтинг: 0 / 0
16.11.2011, 17:23
    #37529792
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как задать курсор в ADO?
Set rs = CreateObject("Adodb.Recordset")
rs.Open "select ...", conn, <вид блокировки, по умолчанию readonly>, <тип курсора, по умолчанию forward only>

Set rs = conn.Execute это запрос с блокировкой и курсором по умолчанию.
...
Рейтинг: 0 / 0
16.11.2011, 17:25
    #37529798
Николай А.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как задать курсор в ADO?
AntonariySet rs = CreateObject("Adodb.Recordset")
rs.Open "select ...", conn, <вид блокировки, по умолчанию readonly>, <тип курсора, по умолчанию forward only>

Set rs = conn.Execute это запрос с блокировкой и курсором по умолчанию.

Понятно
...
Рейтинг: 0 / 0
16.11.2011, 17:26
    #37529800
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как задать курсор в ADO?
Николай А.А как это правильно написать? Какой код должен быть после "records.CursorType = adOpenDynamic"?execute
то бишь строки поменять местами
...
Рейтинг: 0 / 0
16.11.2011, 19:02
    #37530058
Николай А.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как задать курсор в ADO?
Shocker.ProНиколай А.А как это правильно написать? Какой код должен быть после "records.CursorType = adOpenDynamic"?execute
то бишь строки поменять местами

У меня в первом случае так и есть, я только не знаю, как его правильно записать.

Antonariy говорит, что в этом случае execute не пройдёт, только open.

Set rs = CreateObject("Adodb.Recordset")
rs.Open "select ...", conn, <вид блокировки, по умолчанию readonly>, <тип курсора, по умолчанию forward only>

так всё получилось
...
Рейтинг: 0 / 0
16.11.2011, 22:41
    #37530384
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как задать курсор в ADO?
Николай А.Shocker.Proпропущено...
execute
то бишь строки поменять местами

У меня в первом случае так и есть, я только не знаю, как его правильно записать.Ошибся Шокер, бывает.
...
Рейтинг: 0 / 0
16.11.2011, 23:03
    #37530408
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как задать курсор в ADO?
AntonariyОшибся Шокер, бывает.
Да, виноват, поторопился
Я как-то подразумевал
records.CursorType = adOpenDynamic
records.open....
в этом случае можно было бы не указывать тип курсора в Open
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как задать курсор в ADO? / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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