2013-09-25 3 views
1

Я хочу экспортировать некоторые данные из таблицы SQL Server после обновления в таблицу Firebird с помощью odbc. Есть ли способ использовать триггер? Если да, то как, потому что я не знаю, как напрямую использовать соединение ODBC в определении триггера? Я хотел бы проанализировать некоторую информацию из таблицы в SQL Server, чтобы назначить их таблице в FireBird. Например, сократите DATETIME до даты и времени и поместите их в две колонки.Можно ли экспортировать данные таблицы из SQL Server в Firebird с помощью Trigger и ODBC?

ответ

2

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

http://technet.microsoft.com/en-us/library/ms189799.aspx

Обычно триггер будет выполнять дополнительный SQL, но и может выполнить системный вызов. Вы можете использовать триггер для запуска исполняемого файла, который установил соединение ODBC с вашей базой данных SQL Server и отправил обновления для firebird. Используйте небольшую программу Java или C++, чтобы установить соединение ODBC или использовать что-то вроде JDBC/JTDS. JTDS позволяет легко осуществлять SSO-доступ к базам данных SQL-сервера.

+0

Спасибо за ответ. У меня есть дополнительный вопрос, могу ли я использовать триггер для выполнения файла * .jar с помощью скрипта синтаксиса SQL? – insict

+0

Да, вы можете. Вы можете использовать его для выполнения команды оболочки Windows, чтобы вызвать файл jar, или вы можете обернуть свою банку в exe, используя оболочку, такую ​​как launch4j http://launch4j.sourceforge.net/. Если вы используете ODBC, я бы рекомендовал использовать оболочку Launch4j, поскольку она позволяет лучше контролировать, что использует JRE. Соединения ODBC могут сильно зависеть от архитектуры. Например, нет 64-битного ODBC-драйвера для MS Access, а ваша архитектура JRE должна соответствовать характеристике драйвера ODBC, поэтому вам придется заставить JAR работать на 32-битной JRE. – rdmcfee

+0

В этом, конечно, есть разные мнения: http://stackoverflow.com/questions/12974832/sql-server-can-i-use-exec-to-run-an-external-application – rdmcfee

Смежные вопросы