CREATE PROCEDURE FindDogFIO1
@FIO char(41),
@docum char(21),
@tip_zl int
AS
SET NOCOUNT ON
declare @TimeOut int
set @timeOut=40
declare @retA int
declare @retK int
create table #dataset(
id bigint,
kodAnk char(20),
fio char(41),
podpis int,
perezakl int
)
exec @retA=testConnect 'Server1','remote1','remotepwd',@timeOut
if (@retA>0)
print 'Сервер 1 не доступен'
else
insert #dataset exec server1.schet2.dbo.findDogFio @FIO,@docum,@tip_zl
exec @retK=testConnect 'Server2','remote2','remotepwd',@timeOut
if (@retK>0)
print'Сервер 2 не доступен'
else
insert #dataset exec server2.schet2.dbo.findDogFio @FIO,@docum,@tip_zl
select *
from #dataset
drop table #dataset
При вызоые данной процедуры, если один из серверов не доступен, выходит ошибка 'Операция не допускается, если объект закрыт'. Если доступно оба то все проходит нормально. Если обращаться к одному, т.е. например убрать
exec @retK=testConnect 'Server2','remote2','remotepwd',@timeOut
if (@retK>0)
print'Сервер 2 не доступен'
else
insert #dataset exec server2.schet2.dbo.findDogFio @FIO,@docum,@tip_zl
то тоже все проходит нормально не зависимо от того, доступен сервер или нет. В чем дело?
Set rs = findDogFIO(SQLtip_zl, Trim(T(0).Text), Trim(T(1).Text)) 'ТУТ ВЫЗЫВАЕТСЯ ЭТА ХРАНИМАЯ ПРОЦЕДУРА
If Not (rs Is Nothing) Then
Do While Not rs.EOF' ТУТ И ВЫХОДИТ ЭТА ОШИБКА
.....
loop
end if