powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Трассировка OLE DB SQL Server
17 сообщений из 17, страница 1 из 1
Трассировка OLE DB SQL Server
    #33008266
Фотография Va1entin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Работаю с SQL Server из VB6 через ADODB.
ADO возвращает ошибку
-2147217887(80040e21) Multiple-step OLE DB generated errors и т.д.
Возможен ли перехват ошибок OLE DB средствами трассировки SQL Sеrver?
...
Рейтинг: 0 / 0
Трассировка OLE DB SQL Server
    #33008282
HungryEars
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А какая версия ADO?
...
Рейтинг: 0 / 0
Трассировка OLE DB SQL Server
    #33008320
Фотография Va1entin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Похоже на 2.8. Документация установлена от 2.8.
А как можно определить версию самого ADO?

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
Трассировка OLE DB SQL Server
    #33008364
Фотография Va1entin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VB показывает референции на 2.0, 2.1, 2.5, 2.6, 2.7, 2.8.
Считаем 2.8.

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
Трассировка OLE DB SQL Server
    #33008377
HungryEars
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Версию можно посмотреть в реестре:
Код: plaintext
HKEY_CLASSES_ROOT\ADODB.Connection\CurVer

Что касается трассировки, то в профайлере есть такое событие - OLEDB Error. Но не уверен, поможет ли поймать вашу ошибку.
У меня такая же ошибка года 3 тому назад проявлялась при работе с MSSQL 2000 через ADO из Delphi. Только вот с чем была связана проблема и как я ее решил - убей не помню ) Киньте свой SQL, может вспомню.
...
Рейтинг: 0 / 0
Трассировка OLE DB SQL Server
    #33008393
Фотография tpg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Va1entin
Похоже на 2.8. Документация установлена от 2.8.
А как можно определить версию самого ADO?

Posted via ActualForum NNTP Server 1.1
http://support.microsoft.com/default.aspx?kbid=301202&product=mdac
...
Рейтинг: 0 / 0
Трассировка OLE DB SQL Server
    #33008463
Фотография Va1entin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
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.
Dim KodNmkl1 As Long
    Dim NameNMKL1 As String

    ConnectToDB
    
    'On Error GoTo ErrH:
    
    Set cmd = CreateObject("ADODB.Command")
    cmd.CommandText = "get_****"
    cmd.CommandType = 4
    cmd.Parameters.Append cmd.CreateParameter("@KodGruza", 3, 1, 4, CLng(KodGruza))
    cmd.Parameters.Append cmd.CreateParameter("@level", 3, 1, 4, CLng(1))
    Set cmd.ActiveConnection = Con
    
    Set rs = CreateObject("ADODB.Recordset")
    Set rs.Source = cmd
    rs.CursorType = 3 'adOpenStatic
    rs.Open
    
    KodNmkl1 = rs("ID")
    NameNMKL1 = rs("Name")
    
        
    rs.Close
    Set rs = Nothing
    Set cmd = Nothing
    
    DisconnectDB
    

Ошибка возникает на rs.Open.
ConnectToDB и DisconnectDB работают в аналогичных процедурах.
Аналогичные процедуры таким же образом возвращающие данные работают.
Set nocount on в процедуре установлен.
Все права на выполнение установлены.
...
Рейтинг: 0 / 0
Трассировка OLE DB SQL Server
    #33008468
Фотография Ennor Tiegael
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ага, т.е. это даже не басик, это вбскрипт. Ну а что на сервер приходит? В смысле, в профайлере какой код?
...
Рейтинг: 0 / 0
Трассировка OLE DB SQL Server
    #33008483
Фотография Va1entin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это VB6.

Profiler показывает SQL-запрос вызова процедуры с параметрами.
exec get_Code 46217, 1

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
Трассировка OLE DB SQL Server
    #33008537
Фотография Ennor Tiegael
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Va1entinЭто VB6.
В таком случае я не понимаю, зачем вы используете позднее связывание. Вот напиши вы так:
Код: plaintext
Set rs = New ADODB.Recordset
и кучи проблем сразу же смогли бы избегнуть. Ну да ладно, не тот форум, все-таки.

У объекта ADODB.Connection есть коллекция Errors, вот по ней пробегитесь в цикле For Each ... Next - там все, что вернул MSSQL, и будет.
...
Рейтинг: 0 / 0
Трассировка OLE DB SQL Server
    #33008568
Фотография Va1entin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Использую позднее связывание,
потому что с ранним уже были какие-то проблемы,
точно уже не помню, какие, надо разбираться в старом коде.

Пробежался уже и по ADODB.Errors.
Коллекция ADODB.Errors возвращает одну ошибку,
текст и номер которой я уже приводил.
-2147217887(80040e21)

Может кто-нибудь всё-таки знает как разобраться с ошибками ADO DB...
Заранее спасибо :-)

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
Трассировка OLE DB SQL Server
    #33008575
Фотография Va1entin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Sorry, не тот форум!

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
Трассировка OLE DB SQL Server
    #33008586
Фотография Va1entin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Использую позднее связывание,
потому что с ранним уже были какие-то проблемы,
точно уже не помню, какие, надо разбираться в старом коде.

Пробежался уже и по ADODB.Errors.
Коллекция ADODB.Errors возвращает одну ошибку,
текст и номер которой я уже приводил.

-2147217887(80040e21)


Может кто-нибудь всё-таки знает как разобраться с ошибками ADO DB...
Заранее спасибо :-)
...
Рейтинг: 0 / 0
Трассировка OLE DB SQL Server
    #33008643
Фотография Va1entin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OLE DB.
Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
Трассировка OLE DB SQL Server
    #33008662
HungryEars
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я бы попробовал повызывать ту же хранимую процедуру с теми же параметрами ("exec get_Code 46217, 1") другими способами. Для начала - в Query Analyser, потом из VB через ADODB.Connection.Execute(). Интересно, проявится ли ошибка.
MSDN смотрели? Вот статейка оттуда, может поможет:
...
Рейтинг: 0 / 0
Трассировка OLE DB SQL Server
    #33008984
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
         Set rs = New ADODB.Recordset
          rs.CursorLocation = adUseClient
 100      Set cmd = New ADODB.Command
 110      set cmd.ActiveConnection=con
 120      cmd.CommandType = adCmdStoredProc
 140      Set p = cmd.Parameters
          cmd.Parameters.Append cmd.CreateParameter("@KodGruza", adInteger, adParamInput, , CLng(KodGruza))
          cmd.Parameters.Append cmd.CreateParameter("@level", adInteger, adParamInput, ,  1 )
 190      rs.Open cmd, , adOpenStatic, adLockReadOnly

    KodNmkl1 = rs!ID
    NameNMKL1 = rs!Name
...
Рейтинг: 0 / 0
Трассировка OLE DB SQL Server
    #33009113
Фотография Va1entin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за ответы.
Ошибка крылась в тексте процедуры (её писал не я).
В процедуре формировался динамический запрос,
поэтому когда процедура вызывалась под логином конечного пользователя
из скомпилированного кода, возникали проблемы с правами
на выборку из таблиц, используемых в динамическом запросе.
После раздачи соотвествующих прав на выборку данных
из таблиц всё заработало так как и было первоначально задумано.

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Трассировка OLE DB SQL Server
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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