powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / [ADO] SP & Recordset
4 сообщений из 4, страница 1 из 1
[ADO] SP & Recordset
    #32046134
Terol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет.
Есть хранимая процедура, которая возвращает рекордсет. Необходимо этот recordset инициализировать что бы в нем можно было работать со страницами. Обычный рекордсет получаемый из "select * from " работает на ура, а вот от хранимой процедуры не хочет - говорит Current Recordset does not support bookmarks. This may be a limitation of the provider or of the selected cursortype.

код выглядит так

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
var cmd = Server.CreateObject( "adodb.command" )
var rs = Server.CreateObject( "adodb.recordset" )
cmd.ActiveConnection = this.configurator.ConnectionString;
cmd.CommandText =  "sp_crm_"  +  this.page_id;
cmd.CommandType =  4  //adCmdStoredProc
rs.CursorType =  3 ; // adOpenStatic
rs.LockType =  1  // adLockReadOnly 
rs = cmd.Execute
if (!rs.BOF && !rs.EOF) {
   rs.PageSize = this.page_size;  
   rs.AbsolutePage = this.page_no; //  --вот тут он и затыкается
 


заранее спасибо
Станислав Свириденко
...
Рейтинг: 0 / 0
[ADO] SP & Recordset
    #32046137
Makc
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуй:
rs.cursorLocation=adUseClient
...
Рейтинг: 0 / 0
[ADO] SP & Recordset
    #32046140
Фотография jimmers
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Также какой собственно провайдер в ConnectionString?
SQLOLEDB?
...
Рейтинг: 0 / 0
[ADO] SP & Recordset
    #32046141
Terol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо всем откликнувшемся на вопрос. Проблему я решил. Необходимо просто по другому инициализировать Recordset. Вот правильный пример.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
var cmd = Server.CreateObject( "adodb.command" )
var trs = Server.CreateObject( "adodb.recordset" )
cmd.CommandText =  "sp_crm_"  +  this.page_id;
cmd.CommandType =  4  //adCmdStoredProc
trs.CursorLocation =  3 ;
trs.CursorType =  3 ; // adOpenStatic
trs.LockType =  1  // adLockReadOnly 
trs.Open(cmd) //  -- т.е. вот так открывать, а не trs = cmd.Execute
 
if (!trs.BOF && !trs.EOF) {
   trs.PageSize = this.page_size;
   trs.AbsolutePage = this.page_no;


Спасибо всем
Станислав Свириденко
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / [ADO] SP & Recordset
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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