В связи с проектом перенастройки переноса данных из DB2 на SQL Server я столкнулся с проблемой, связанной с тем, что поставщик .NET по отношению к DB2 использует курсоры (данные).
Сегодня клиент выполняет набор пакетных программ .NET для DB2 с использованием поставщика ADO.NET из Host Integration Server 2010.
Программы используют программу чтения Db2Data для перебора курсора, определенного в пакете DB2. В некоторых случаях курсор объявляется как « с удержанием », что позволяет оставить курсор открытым после фиксации в области транзакции.
Поставщик ADO.NET (System.Data.SqlClient
) для SQL Server 2008 R2 не поддерживает эту функцию.
Есть ли у кого-нибудь опыт «эмулировать» желаемое поведение поставщика DB2 в отношении «курсора с удержанием».
Следует отметить, что повторное внедрение хранимых процедур с использованием курсоров T-SQL не дает желаемого эффекта, поскольку средство чтения данных ADO.NET SQL Server не может взаимодействовать с курсором T-SQL так же, как DB2 Provider и DB2 делают сегодня (по крайней мере, это наше понимание).