Вызов хранимой процедуры Informix

VladG
Дата: 11.03.2001 10:15:37
Проблема такова:
Каким образом в рамках выполнения одной трансакции в процессе выполнения хранимой процедуры MSSQL вызвать хранимую процедуру INFORMIX, которая выполняет изменение данных в INFORMIX, с передачей ей параметров. После выполнения процедуры INFORMIX вернуть из нее параметры в вызывающую процедуру MSSQL и продолжить ее выполнение. Разумеется, при неприятностях должны выполняться все ROLLBACK'и, включая и содержимое базы INFORMIX.
При всем этом, connect к INFORMIX должен быть выполнен заранее (предполагается пакетный запуск выполнения таких процедур MSSQL). В силу необходимости прибекать к помощи какого-нибудь клиентского приложения крайне нежелательно.
Пожалуйста, подскажите, если знаете.
Дед Маздай
Дата: 11.03.2001 13:17:22
Оформить Informix в виде прилинкованного сервера. На стороне SQL Srv запустить MS DTC (ежели не стартован), в Server Options прилинкованного сервера включить опцию RPC Out и написать код типа:
begin distributed tran
... локальные вызовы, операторы ...
exec <имя прилинкованного сервера>.<БД на Informix>.<схема>.<хранимая процедура> <параметр1>, ..., <параметр N>
... локальные вызовы, операторы ...
commit (или rollback, в з-ти от обстоятельств)
abursh
Дата: 12.03.2001 15:11:36
A может уважаемый дед Маздай, или кто другой, не менее сведущий, знает, как подлинковать сервер INFORMIX к серверу MSSQL? Я в свое время вот не сумел найти, как это сделать через OLEDB provider'а. Вот с Оrаcle - пожалуйста, нет проблем, а что до Informix - извините, концов не нашел.
ComeRun
Дата: 14.03.2001 01:35:23
В недрах online books есть таблица со всеми необходимыми параметрами для каждого провайдера.
Завтра с работы пошлю как минимум для Informix'а.
Я тоже линковал базу с Informix'а... Очень удобно, дед Маздай прав (впрочем как и всегда...)
ComeRun
Дата: 14.03.2001 16:26:33
Как и обещал...
Дай поиск на "sp_addlinkedserver".
Там и есть эта таблица.
Удачи...