Вопрос вот в чем.
Можно ли как-нибудь мониторить запросы к Интербейзной базе из любой проги. Исходников проги нету (
Может, какие готовые решения есть?
Здравствуйте, Сергей Лисовский, Вы писали:
СЛ>Привет всем!
СЛ>Вопрос вот в чем. СЛ>Можно ли как-нибудь мониторить запросы к Интербейзной базе из любой проги.
Вкладку InterBase Admin на панели компонентов в Delphi смотрели? Там есть кое чего из того, что вам нужно...
Здравствуйте, Flamer, Вы писали:
F>Здравствуйте, Сергей Лисовский, Вы писали:
СЛ>>Привет всем!
СЛ>>Вопрос вот в чем. СЛ>>Можно ли как-нибудь мониторить запросы к Интербейзной базе из любой проги.
F>Вкладку InterBase Admin на панели компонентов в Delphi смотрели? Там есть кое чего из того, что вам нужно...
По моему это будет работать только с твоим проектом, а если надо с другим
F>Вкладку InterBase Admin на панели компонентов в Delphi смотрели? Там есть кое чего из того, что вам нужно...
Стандартного монитора для IB нету, поддержки в API для мониторинга тоже нету.
То, что на этой вкладке — это мониторинг работающий с компонентами IBX. Соответственно, он не поможет при других способах доступа.. ;(
Здравствуйте, Сергей Лисовский, Вы писали:
СЛ>Здравствуйте, Flamer, Вы писали:
СЛ> F>>Вкладку InterBase Admin на панели компонентов в Delphi смотрели? Там есть кое чего из того, что вам нужно...
СЛ>Смотрели... СЛ>Там не совсем то, что надо. СЛ>Мне бы запросы посмотреть, какие к базе идут (селекты, апдейты и т. д.).
ИМХО из внешнего приложения сия задача невозможна обычными средствами.
Хотя теоретически — решима.
Вот только кто бы на это решился ???
Здравствуйте, Сергей Лисовский, Вы писали:
СЛ>Решима, говоришь? СЛ>Где б про это почитать, хоть самую малость?
Я это делаю для Oracle. Идея состоит в том, чтобы внедрить DLL в процесс, который вы хотите мониторить, и перехватить вызовы того API, который поставляет Interbase-у запросы, значения параметров и т.д. В Oracle — это OCI. Про Interbase не скажу — не доводилось. Если его API документирован — задачка на несколько дней. Если нет, как UPI в Oracle — тогда придется дизассемблировать клиента.
Про перехват API на RSDN есть хорошая статья. Так что ничего сложного, тем более невозможного. Если терпит до выходных — могу на выходных посмотреть, с чем едят Interbase. Если не сильно замороченно и хорошо документировано — отчего бы и не сделать?
ST>Я это делаю для Oracle. Идея состоит в том, чтобы внедрить DLL в процесс, который вы хотите мониторить, и перехватить вызовы того API, который поставляет Interbase-у запросы, значения параметров и т.д. В Oracle — это OCI. Про Interbase не скажу — не доводилось. Если его API документирован — задачка на несколько дней. Если нет, как UPI в Oracle — тогда придется дизассемблировать клиента.
ST>Про перехват API на RSDN есть хорошая статья. Так что ничего сложного, тем более невозможного. Если терпит до выходных — могу на выходных посмотреть, с чем едят Interbase. Если не сильно замороченно и хорошо документировано — отчего бы и не сделать?
Спасибо за предложение. Я, если честно, подумывал о перехвате ф-ций.
Сейчас разгребусь с текучкой и попробую сам покопаться. Тема-то интересная.
Здравствуйте, Сергей Лисовский, Вы писали:
СЛ>Решима, говоришь? СЛ>Где б про это почитать, хоть самую малость?
Есть один способ, но он больше похож на вырезание гланд не через нужное отверстие. И подходит он только при сетевой работе. Sniffer называется. Посморти на www.ibexpert.com/download TCP/IP Expert для IB. Если я с адресом не напутал.
Здравствуйте, Сергей Лисовский, Вы писали:
СЛ>Можно ли как-нибудь мониторить запросы к Интербейзной базе из любой проги. Исходников проги нету ( СЛ>Может, какие готовые решения есть?
Как вариант. Если соединение с базой идет через ODBC, то в ODBC Data Source Administrator посмотри закладку "Tracing".
При запуске можно сохранять запросы к базе в файл.