Как перехватить данные, которые другая программа записывает в базу данных через ODBC?

программирование ODBC callback

Мне нужно, чтобы данные поступали вместо БД в мою программу с минимальной задержкой.При этом желательно минимизировать использование ресурсов компьютера.

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

Может быть, уже существует драйвер ODBC, который получаемые данные перенаправляет по TCP/IP или, допустим, OLE в другое приложение?

Лучшее, что я пока смог придумать - использовать для этой цели триггеры PostgreSQL .

Ответы:
1. Самый быстрый это сделать свой прокси сервер между клиентом и СУБД. Основная сложность в разборе протокола.
2. Самый простой, на мой взгляд, но и медленный в работе - перехват логов сервера  СУБД. Логи пишутся в файл, можно мониторить изменения файла (это быстро, есть в каждой ОС свои способы). Может получится какой-нито виртуальный файл подсунуть для устранения узкого места - записи в файл на диске.
Вообще, для решения такой задачи, я бы изучил как работают трейсеры запросов (FlexTracer и другие) и использовал бы их методы и даже, возможно, какие-то готовые решения.


16 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.