Как отследить, в какие таблицы БД записывала данные?

Я использую «Lexware Warenwirtschaft Premium 2014» (известное программное обеспечение для управления товарами в Германии). В качестве базы данных используется Sybase. Я подключаюсь к базе данных с помощью соединения ODBC (драйвер SQL Anywhere). В базе более 800 таблиц. Например, когда Lexware создает новую статью, она записывает данные в разные таблицы.

Есть ли способ отследить, в какие таблицы Lexware записывает данные?


person user3445881    schedule 02.06.2014    source источник


Ответы (2)


В качестве специальной меры вы можете включить трассировку ODBC, а затем просмотреть содержимое.

http://support.microsoft.com/kb/274551 рассказывает, как это сделать из Клиент Windows, и вы можете найти аналогичную информацию для Linux/Unix и других клиентов.

Затем вам нужно будет проанализировать файл трассировки, чтобы увидеть, какие запросы были вставлены. Первым шагом, вероятно, будет изолировать все операторы SQLPrepare и SQLExecDirect и проверить их на наличие INSERT, UPDATE и других соответствующих операторов Sybase.

Обратите внимание, что это не то, что вам нужно в качестве постоянного решения, а просто способ узнать, что делает клиент ODBC, если у вас нет доступа, например. регистрация информации в самой базе данных. Однако трассировка замедляет выполнение и создаст очень большой файл трассировки, если вы оставите ее работающей на какое-то значительное время.

person mc110    schedule 02.06.2014

Я так не думаю. Все, что эта программа делает за интерфейсом, скрыто в ее двоичных файлах и нечитаемо для людей, поэтому вы не можете прочитать код, чтобы увидеть, какие таблицы изменены.

Возможно, вы сможете выяснить, какая таблица редактировалась последней, в зависимости от SQL-сервера и его версии.

person MA3o    schedule 02.06.2014
comment
Это SQLAnywhere, а не SQLServer - person Michael Gardner; 02.06.2014