-
Есть внешняя программа, которая передает данные по ODBC в базу данных. Есть моя программа, которая по 10 раз в сек. делает select из базы, чтобы отследить изменения данных. И есть огромное желание отказаться от СУБД, т.к. кроме тормозов она ни для чего не используется.
Существуют ли примеры реализации ODBC драйвера на Delphi?
-
> Есть моя программа, которая по 10 раз в сек. делает select
> из базы, чтобы отследить изменения данных.
Для чего? Как часто данные изменяются? Какая СУБД?
> И есть огромное желание отказаться от СУБД, т.к. кроме тормозов
> она ни для чего не используется.
Вообще не понял.
> Существуют ли примеры реализации ODBC драйвера на Delphi?
Я в этом очень сильно сомневаюсь, у Delphi несколько другая ниша.
-
> Существуют ли примеры реализации ODBC драйвера на Delphi?
да, существуют.
Но чем оно тебе поможет - я, честно говоря, не вижу
-
> Для чего? Как часто данные изменяются? Какая СУБД?
Для управления клапаном.
До 10 раз в секунду, но могут не меняться часами. В таблице ~600 строк, 2 поля: ключ-значение. Идут Insert, Update, Delete.
Сейчас MSSQL, но СУБД не принципиальна, т.к. используется только как интерфейс между внешней и моей программой (1 база с 1 таблицей), подошла бы любая знающая про ODBC.
> Вообще не понял.
Хочется напрямую получать информацию из внешнего приложения выступая для него ODBC источником.
-
выступая для него ODBC источником
чууумаааа .....
-
ну создай ему одбс источник, заточенный как бы на мсскл на твоей машине.
запускайся, открывай порт и прикидывайся эмэсэскьюэлем.
-
Reindeer Moss Eater, вы предлагаете выступать СУБД для ODBC драйвера. я же хочу выступать в роли ODBC драйвера, причем с очень обрезанным функционалом, заточенным под конкретное приложение.
-
> Для управления клапаном
> Insert, Update, Delete
Любопытно, как изменения упомянутых табличных данных кореллирует с управлением клапаном ...
-
> Любопытно, как изменения упомянутых табличных данных кореллирует
> с управлением клапаном ...
Из таблицы берем значение по ключу select Value where key='temperature' и подставляем в формулу. Если значения нет, то расчет новой степени открытия клапана не производим. Если степени открытия изменилась, отправляем команду клапану.
Расчет и отправка команды клапану производится в программе написанной на Delphi. А вот данные о температуре и ещё ~600 параметров приходят по ODBC в MSSQL.
-
Понятно.
А собссно где, на каком этапе этой схемы и при каких условиях наблюдаются "тормоза", которые тебе не дают покоя ?
-
А не проще повесить триггера на таблицу и написать xp для взаимодействия со своей программой?
-
> Reindeer Moss Eater © (17.04.08 11:42) [10]
Его ж тормоза заботят ..
Тут либо СУБД-сервер не отконфигурасили должным образом либо менять его надо, если это возможно (и похоже что возможно, судя по вышеизложенному). На тот же Мускул, к примеру
-
>SkyN (16.04.08 17:24)
>Есть моя программа, которая по 10 раз в сек. делает select из базы, чтобы отследить изменения данных.
предложенный вариант с триггерами решает эту проблему
а Ваши "10 раз в сек." только создают доп. нагрузку на сервер, но проблему отслеживания изменений не решают
-
Наверное буду делать dll с Extended Stored Procedure для mssql, котороя будет оповещать приложение.
-
> SkyN (17.04.08 15:34) [13]
Если ничто не мешает перейти на FB, то там можно обойтись без заморочек с dll - вохможность нотификации клиентов встроена прямо в PSQL
-
> Сергей М. © (17.04.08 16:21) [14]
>
>
> > SkyN (17.04.08 15:34) [13]
>
>
> Если ничто не мешает перейти на FB, то там можно обойтись
> без заморочек с dll - вохможность нотификации клиентов встроена
> прямо в PSQL
>
Вот только, работает ли это через ODBC....Кажись, нет