Операция не допускается, если объект закрыт
От: optimizm  
Дата: 03.10.05 12:04
Оценка:
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
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.