|
|
|
Обработка ошибок в OLE DB
|
|||
|---|---|---|---|
|
#18+
Всем привет. Работаю с SQL Server 2K через OLE DB (C++). При возникновении ошибок в ходе выполнения SQL запросов, GetErrorInfo очень часто возвращает NULL (хотя при сходных ошибках может и вернуть IErrorInfo). Есть ли другой способ получать информацию об ошибках в OLE DB? Возможно, есть способ получать сообщения от SQL Server в некий обработчик, как это сделано в DB Library? (dbmsghandle), там более, что ADO как-то делает это в событии InfoMessage Заранее спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2007, 14:19:39 |
|
||
|
Обработка ошибок в OLE DB
|
|||
|---|---|---|---|
|
#18+
dentitov пишет: > Возможно, есть способ получать сообщения от SQL Server в некий > обработчик, как это сделано в DB Library? (dbmsghandle), там более, что > ADO как-то делает это в событии InfoMessage Не отвечая на вопрос, могу сказать, что так, как это сделано в db-lib - это САМЫЙ КРИВОЙ СПОСОБ ЭТО СДЕЛАТЬ, хотя конечно если call-back - это метод интерфейса, а не глобальная функция C, то оно конечно лучше. Но лучший способ все же - fetch-ить ошибки (сообщения) так же как и строки данных - это самый правильный вариант, потому как природа этих данных такова, что она не влияет на поток выполнения клиента, хотя это может показаться и странным. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.11.2007, 17:59:18 |
|
||
|
Обработка ошибок в OLE DB
|
|||
|---|---|---|---|
|
#18+
Вроде разобрался. Проблема была в том, что CoInitialize вызывалась в потоке несколько раз. После этого SQLOLEDB вообще не вызывал SetErrorInfo после ошибочных вызовов (возможно, он просто не мог создать объект ошибки) После того, как вызов CoInitialize стал один на поток, все заработало. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.12.2007, 07:53:18 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=34993047&tid=2027684]: |
0ms |
get settings: |
4ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
191ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
24ms |
get tp. blocked users: |
1ms |
| others: | 213ms |
| total: | 454ms |

| 0 / 0 |
