Исходные данные
два сервера: MSSQL2000 с запущенным MSDTC
и AS400 4.4 доступ через ODBC Client Access 4.4
Никак не получается решить две проблемы
1. Распределенные транзакции
запускаю через QA
BEGIN TRAN
delete from TABLE1 where ID_Pos=85
insert into OPENQUERY (AS400, 'SELECT field1,field2,field3 from TableAs400')
SELECT field1,field2,field3 FROM TABLE1 where ID_Pos=86
COMMIT TRAN
|
|
Ну и стандартная ошибка
Server: Msg 7391, Level 16, State 1, Line 12
The operation could not be performed because the OLE DB provider 'MSDASQL' was unable to begin a distributed transaction.
Без транзакций все это работает
Естественно на стороне AS400 настроено журналирование соответствующей таблицы и соответствующим образом (с поддержкой транзакций) настроен
ODBC источник через которой действует связанный сервер AS400
2. Не получается запустить процедуру на AS400 со стороны MSSQL
процедура не возращает ни каких данных. Даже пусть она для простоты возращает рекордсет, всеравно не получается
Пытался так
select * from OpenQuery(AS400,'call ProcedureName' )
|
|
Ошибка такая
Could not process object 'call ProcedureName'. The OLE DB provider 'MSDASQL' indicates that the object has no columns.
В обычном sql редакторе вызов call ProcedureName успешно выполняется
Вот...
Заранее спасибо за любую помощь