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

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

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

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

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

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

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

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


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