Гость
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / приём данных из хранимой процедуры в recordset / 6 сообщений из 6, страница 1 из 1
27.05.2019, 12:56
    #39818741
melihron
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
приём данных из хранимой процедуры в recordset
Добрый день, коллеги.
Access 2003 формат mdb.
Хранимая процедура возвращает с SQL Server-а набор данных в формате ADODB.Recordset. Пытаюсь его назначить на форму - выдаёт ошибку :
Указанный объект не может являться значением свойства "набор записей" (Recordset)

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
  Dim rs As adodb.Recordset
  Dim cmd  As adodb.Command
  
  OpenDBConnect "mydb"
'---------------------------------
  Set cmd = New adodb.Command
  cmd.ActiveConnection = cn
  cmd.CommandText = "proc_name"
  cmd.CommandType = adCmdStoredProc

  cmd.Parameters.Refresh ' запрашиваем параметры для вызова процедуры

  cmd.Parameters("@name").value = ... ' задаём параметры для вызова функции
  cmd.Parameters("@pass").value = ...

  Set rs = cmd.Execute ' принимаем результаты запроса процедуры в rs

  Set dealerdynamic_order.Form.Recordset = rs ' пытаемся этот adodb-рекордсет назначить на форму 


на этом месте ругается

Но если делать не через процедуру, а напрямую запросом к sql-евским таблицам, то прокатывает.
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
  Dim rs As ADODB.Recordset
  
  Set rs = New ADODB.Recordset
  With rs
     Set .ActiveConnection = cn
     .source = "SELECT code,id FROM unit"
     .CursorLocation = adUseClient
     .CursorType = adOpenStatic
     .LockType = adLockReadOnly
     .Open
  End With

  Set Me.filterUnit.Recordset = rs
  filterUnit.Requery


Но напрямую нельзя держать открытыми таблицы на сервере, зато можно делать запросы к ним из функций-процедур.
.... Можно конечно в цикле построчно передавать каждый элемент списка, но так дольше. Подскажите плиз, кто знает.
...
Рейтинг: 0 / 0
27.05.2019, 13:11
    #39818755
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
приём данных из хранимой процедуры в recordset
Точно не помню, но попробуй так
Вер
melihron
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
  
 Dim cmd  As adodb.Command
  
  OpenDBConnect "mydb"
'---------------------------------
  Set cmd = New adodb.Command
  cmd.ActiveConnection = cn
  cmd.CommandText = "proc_name"
  cmd.CommandType = adCmdStoredProc

  cmd.Parameters.Refresh ' запрашиваем параметры для вызова процедуры

  cmd.Parameters("@name").value = ... ' задаём параметры для вызова функции
  cmd.Parameters("@pass").value = ...
With rs
     .CursorLocation = adUseClient
     .CursorType = adOpenStatic
     .LockType = adLockReadOnly
     .Open cmd
  End With
...
Рейтинг: 0 / 0
27.05.2019, 13:15
    #39818756
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
приём данных из хранимой процедуры в recordset
melihron, забыл дописать
Код: vbnet
1.
2.
3.
  Dim rs As ADODB.Recordset
  
  Set rs = New ADODB.Recordset
...
Рейтинг: 0 / 0
27.05.2019, 13:23
    #39818763
melihron
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
приём данных из хранимой процедуры в recordset
етить... получилось... большое спасибо! : )
...
Рейтинг: 0 / 0
27.05.2019, 18:18
    #39818932
melihron
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
приём данных из хранимой процедуры в recordset
продолжение темы )
теперь сумму по полученным столбцам не считает... выражение =sum(amount) даёт ошибку
...
Рейтинг: 0 / 0
27.05.2019, 19:27
    #39818948
Панург
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
приём данных из хранимой процедуры в recordset
melihronтеперь сумму по полученным столбцам не считает...и фильтр, скорее всего работать не будет...
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / приём данных из хранимой процедуры в recordset / 6 сообщений из 6, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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