powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Обработка ошибок в OLE DB
3 сообщений из 3, страница 1 из 1
Обработка ошибок в OLE DB
    #34951982
dentitov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет.

Работаю с SQL Server 2K через OLE DB (C++). При возникновении ошибок в ходе выполнения SQL запросов, GetErrorInfo очень часто возвращает NULL (хотя при сходных ошибках может и вернуть IErrorInfo). Есть ли другой способ получать информацию об ошибках в OLE DB?

Возможно, есть способ получать сообщения от SQL Server в некий обработчик, как это сделано в DB Library? (dbmsghandle), там более, что ADO как-то делает это в событии InfoMessage

Заранее спасибо.
...
Рейтинг: 0 / 0
Обработка ошибок в OLE DB
    #34953034
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dentitov пишет:

> Возможно, есть способ получать сообщения от SQL Server в некий
> обработчик, как это сделано в DB Library? (dbmsghandle), там более, что
> ADO как-то делает это в событии InfoMessage

Не отвечая на вопрос, могу сказать, что так, как это сделано
в db-lib - это САМЫЙ КРИВОЙ СПОСОБ ЭТО СДЕЛАТЬ, хотя конечно
если call-back - это метод интерфейса, а не глобальная функция C,
то оно конечно лучше. Но лучший способ все же - fetch-ить ошибки
(сообщения) так же как и строки данных - это самый правильный вариант,
потому как природа этих данных такова, что она не влияет на
поток выполнения клиента, хотя это может показаться и странным.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Обработка ошибок в OLE DB
    #34993047
dentitov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вроде разобрался.

Проблема была в том, что CoInitialize вызывалась в потоке несколько раз. После этого SQLOLEDB вообще не вызывал SetErrorInfo после ошибочных вызовов (возможно, он просто не мог создать объект ошибки)

После того, как вызов CoInitialize стал один на поток, все заработало.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Обработка ошибок в OLE DB
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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