powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Обращение к базе данных
4 сообщений из 4, страница 1 из 1
Обращение к базе данных
    #38821422
Добрый день.

Нужно в VBA получить данные из процедуры в MS SQL Server, возвращающее одно значение в одном столбце.
написал код:
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
    Dim orNr as String, ordNr as String
    Dim cn As Connection
    Dim rstADO As ADODB.Recordset
    
    GetConnectionProperties

    Set cn = New ADODB.Connection
 
    With cn
        .Provider = "SQLOLEDB"
        .ConnectionString = "Server=" & strSERVER & ";" & _
                            "Database=" & strDB & ";" & _
                            "UID=" & strUser & ";" & _
                            "PWD=" & strPWD & ";"
        .Open
    End With
    
    qry = "exec usr_OR_NextOrderNr '" & orNr & "' "
        
    Set rstADO = New ADODB.Recordset
    
    With rstADO
        If .State = adStateOpen Then .Close
        .ActiveConnection = cn
        .Source = qry
        .CursorLocation = adUseServer
        .CursorType = adOpenForwardOnly
        .LockType = adLockReadOnly
        .Open
    End With
        
    If Not rstADO.BOF Then
        ordNr = rstADO.Fields(0)
    End If


Выдает ошибку: "Операция не допускается, если объект закрыт".
Пользователь имеет права на выполнение процедуры, и при соединении под его именем в MS Studio процедура выполняется и выдает значение. Подскажите пожалуйста, в чем может быть дело?
...
Рейтинг: 0 / 0
Обращение к базе данных
    #38821454
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир МеньшиковОперация не допускается, если объект закрытстоило бы воспользоваться поиском по форуму по тексту ошибки, ибо вопрос задавался уже не раз....

первой строкой в процедуре напишите
Код: sql
1.
set nocount on
...
Рейтинг: 0 / 0
Обращение к базе данных
    #38821464
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще, желательно указывать процедуре имя параметра явно, либо обращаться через объект Command, это позволит разработчику БД не быть обязанным соблюдать порядок параметров в процедуре.

То же самое касается поля - лучше обращаться по имени, а не по индексу по тем же причинам.
...
Рейтинг: 0 / 0
Обращение к базе данных
    #38821526
Shocker.Pro,

Спасибо, помогло.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Обращение к базе данных
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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