можно увидеть все операторы SQL, отправленные через соединение ODBC? - PullRequest
4 голосов
/ 20 апреля 2010

Я работаю со сторонним приложением, которое использует ODBC для подключения и изменения базы данных. Во время определенных режимов отказа конечные результаты не соответствуют ожиданиям. Чтобы лучше это понять, я бы хотел как-то проверить все утверждения, отправленные в базу данных. Есть ли способ сделать это с ODBC?

Я знаю, что с JDBC я мог бы использовать http://www.p6spy.com/, чтобы увидеть все отправленные операторы, например, при отладке hibernate. p6spy - это прокси-драйвер, который записывает отправленные команды и передает их реальному драйверу JDBC.

Другой возможностью может быть перехватчик протокола, который будет перехватывать операторы по проводам. Хотя я не уверен, включает ли ODBC стандартный проводной протокол или только API.

Кто-нибудь знает о существующих инструментах, которые позволили бы мне сделать любую из этих вещей? В качестве альтернативы, есть ли другой подход, который я мог бы использовать?

Ответы [ 3 ]

1 голос
/ 20 апреля 2010

ODBC указывает, как ваша программа взаимодействует с локальным драйвером, а не как локальный драйвер взаимодействует с удаленной базой данных. Идея вашего прокси-драйвера является надежной, вам просто нужно ее найти.

1 голос
/ 20 апреля 2010

Вы пробовали встроенную в ODBC трассировку? В ODBC Data Source Administrator есть вкладка трассировки. Насколько я помню, полученная информация довольно многословна.

0 голосов
/ 20 апреля 2010

Я думаю, что легче читать журналы на стороне SQL, независимо от базы данных. Например, включение монитора на SQL Server или просмотр журналов в MySQL. Кажется, что использование сниффера было бы больше проблем, чем оно того стоит, но я думаю, это зависит от доступных инструментов Какие СУБД вы используете?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...