#sql-server #http #stored-procedures #triggers #xml-rpc
#sql-сервер #http #хранимые процедуры #триггеры #xml-rpc
Вопрос:
у моего клиента есть SQL Server с некоторой информацией о клиенте, и я разрабатываю интернет-магазин, используя базу данных MySQL. Что нам нужно, так это синхронизировать базу данных баллов лояльности клиентов. Когда клиент покупает товар в обычном магазине (не в интернет-магазине), они записываются на SQL Server (через какое-либо бухгалтерское приложение). Проблема в том, что мне нужна эта информация для доступа к серверу MySQL, который хранит информацию для приложения e-shop, поэтому количество баллов лояльности синхронизируется на обоих серверах.
Есть ли какой-либо способ, как я могу отправить http и / или xml / rpc запрос с SQL Server либо с помощью триггера, либо с помощью хранимой процедуры (я полагаю, триггер может запускать хранимую процедуру, поэтому подойдет любой из них)?
Комментарии:
1. Не могли бы вы настроить MSSQL так, чтобы сервер MySQL был «связанным сервером»? forums.mysql.com/read.php?60,123221,123221
2. К вашему сведению, вы можете сделать именно то, что просили, используя что-то под названием интеграция с SQL Server CLR, однако вы абсолютно не должны! Выполнение IPC (или любого другого блокирующего ввода-вывода) внутри процесса SQL Server, подобного этому, вероятно, приведет к беспорядку в вашем экземпляре SQL Server из-за способа работы с потоками — вы должны использовать то, что предлагает Мэтью вместо этого.
Ответ №1:
Важно ли взаимодействовать с базой данных MySQL через xml / rpc?
Я мог бы попытаться выполнить это, связав базу данных MySQL с базой данных MSSQL … процесс будет зависеть от версии, поэтому ваша версия MSSQL полезна…
Но этот сайт:
http://www.infi.nl/blog/view/id/4/How_To_MySQL_as_a_linked_server_in_MS_SQL_Server
может быть, это хорошее начало для вас
РЕДАКТИРОВАТЬ: И здесь, для MSSQL2008
http://dbperf.wordpress.com/2010/07/22/link-mysql-to-ms-sql-server2008/
Комментарии:
1. Я не знал об этой опции, но, похоже, она решит мою проблему еще более удобным способом! К сожалению, я не могу попробовать это прямо сейчас, поскольку мой клиент еще не настроил доступ к своему серверу, но я прошел по ссылкам и не вижу причины, по которой это не должно работать. Большое спасибо!