CURSOR NOT WORKING

Last post 10-30-2008 7:12 AM by AndreyPereira. 0 replies.

Sort Posts:

  • CURSOR NOT WORKING

    10-30-2008, 7:12 AM
    • Member
      344 point Member
    • AndreyPereira
    • Member since 03-05-2008, 9:07 AM
    • Brazil - São Paulo
    • Posts 103

     Hi All,

     

    Please, someone help me finfing out the problem of this &*#Q¨CURSOR!!!!!!!

    I can´t get it, why does not work. If i execute the code outised of the procedure and the if statemente, the CURSOR just works fine. But when i execute the proc, it just get @@FETCH_STATUS = -1

    HERES THE CODE! The problem part is in bold. Thanks, any help would be VERY appreciated

     

    1    ALTER PROCEDURE [dbo].[_V2_SpTempClienteUpdate]
    2 (@IdCliente AS INT,@IdUsuarioAprovacao AS INT,@GerarLogSecretaria AS BIT = 'TRUE',@IdTempEspecifico AS INT = 0)
    3 AS
    4 5 6 DECLARE
    @IdTemp AS INT
    7 IF
    (@IdTempEspecifico = 0)
    8 BEGIN
    9 SET
    @IdTemp = (SELECT IdTemp FROM _v2_TbTemps WHERE IdCliente = @IdCliente)
    10 END
    11 ELSE
    12 BEGIN
    13 SET
    @IdTemp = @IdTempEspecifico
    14 END
    15 16 DECLARE
    @IdNivelHierarquico AS INT
    17 SET
    @IdNivelHierarquico = (SELECT IdNivelHierarquico FROM _V2_TbTempClientes WHERE IdCliente = @IdCliente)
    18 19 IF (@IdNivelHierarquico = 17 OR @IdNivelHierarquico = 72)
    20 BEGIN 21
    22 --DELETE NA TABELA DE TEMPSECRETARIAS (CASO ALGUEM TROCOU A EMPRESA DA SECRETARIA E MANTEVE OS EXECUTIVOS DA OUTRA EMPRESA) 23 DELETE FROM [_V2_TbTempClientesSecretarias] WHERE IdCliente NOT IN
    24 (SELECT IdCliente FROM _V2_VwClientes WHERE IdEmpresa IN(SELECT IdEmpresa FROM _V2_TbTempClientes WHERE @IdTemp = @IdTemp))
    25 AND IdTemp = @IdTemp
    26
    27 --DELETE CASO MUDOU DE EXECUTIVA PARA SECRETARIA 28 DELETE FROM _V2_TbTempClientesSecretarias WHERE IdCliente = @IdCliente
    29
    30 END
    31 32 ELSE
    33 BEGIN
    34 --DELETE NA TABELA DE TEMPSECRETARIAS (CASO ALGUEM TROCOU A EMPRESA DO CONTATO E MANTEVE AS SECRETARIAS DA OUTRA EMPRESA) 35 DELETE FROM [_V2_TbTempClientesSecretarias] WHERE IdSecretaria NOT IN
    36 (SELECT IdCliente FROM _V2_VwSecretarias WHERE IdEmpresa IN(SELECT IdEmpresa FROM [_V2_TbTempClientes] WHERE @IdTemp = @IdTemp))
    37 AND IdTemp = @IdTemp
    38
    39 --DELETE CASO MUDOU DE SECRETARIA PARA EXECUTIVA 40 DELETE FROM _V2_TbTempClientesSecretarias WHERE IdSecretaria = @IdCliente
    41 END 42 43
    44 45 --UPDATE NA TABELA DE CLIENTE 46 UPDATE _V2_TbClientes SET 47 _V2_TbClientes.Nome = _V2_TbTempClientes.Nome ,
    48 _V2_TbClientes.Tratamento = _V2_TbTempClientes.Tratamento ,
    49 _V2_TbClientes.Sexo = _V2_TbTempClientes.Sexo ,
    50 _V2_TbClientes.Email = _V2_TbTempClientes.Email ,
    51 _V2_TbClientes.CargoNaEmpresa = _V2_TbTempClientes.CargoNaEmpresa ,
    52 _V2_TbClientes.FlEmailOptIn = _V2_TbTempClientes.FlEmailOptIn ,
    53 _V2_TbClientes.FlContatoDesmond = _V2_TbTempClientes.FlContatoDesmond ,
    54 _V2_TbClientes.FlAccountManager = _V2_TbTempClientes.FlAccountManager ,
    55 _V2_TbClientes.FlContatoPresidencia = _V2_TbTempClientes.FlContatoPresidencia ,
    56 _V2_TbClientes.FlContatoJuridico = _V2_TbTempClientes.FlContatoJuridico ,
    57 _V2_TbClientes.FlContatoRH = _V2_TbTempClientes.FlContatoRH ,
    58 _V2_TbClientes.FlContatoProdutos = _V2_TbTempClientes.FlContatoProdutos ,
    59 _V2_TbClientes.FlFuncTercMasterCard = _V2_TbTempClientes.FlFuncTercMasterCard ,
    60 _V2_TbClientes.FlRecebeBolo = _V2_TbTempClientes.FlRecebeBolo ,
    61 _V2_TbClientes.FlGrupoDiversidade = _V2_TbTempClientes.FlGrupoDiversidade ,
    62 _V2_TbClientes.DtNascimento = _V2_TbTempClientes.DtNascimento ,
    63 _V2_TbClientes.DtUltimaAtualizacao = GETDATE() ,
    64 _V2_TbClientes.FlExcluido = 0 , --PARA CASO FOR UMA INSERÇÃO, ATUALIZAR O CONTATO PARA APARECER =) 65 _V2_TbClientes.DtExclusao = _V2_TbTempClientes.DtExclusao ,
    66 _V2_TbClientes.IdEmpresa = _V2_TbTempClientes.IdEmpresa ,
    67 _V2_TbClientes.IdQualificacao = _V2_TbTempClientes.IdQualificacao ,
    68 _V2_TbClientes.IdEstadoCivil = _V2_TbTempClientes.IdEstadoCivil ,
    69 _V2_TbClientes.IdAtuacao = _V2_TbTempClientes.IdAtuacao ,
    70 _V2_TbClientes.IdPublico = _V2_TbTempClientes.IdPublico ,
    71 _V2_TbClientes.IdNivelHierarquico = _V2_TbTempClientes.IdNivelHierarquico ,
    72 _V2_TbClientes.IdArea = _V2_TbTempClientes.IdArea
    73 FROM _V2_TbClientes INNER JOIN _V2_TbTemps ON _V2_TbClientes.IdCliente = _V2_TbTemps.IdCliente
    74 INNER JOIN _V2_TbTempClientes ON _V2_TbTempClientes.IdTemp = _V2_TbTemps.IdTemp
    75 WHERE _V2_TbTemps.IdTemp = @IdTemp
    76 77 78 --UPDATE NA TABELA DE TELEFONES
    79 --PRIMEIRO LIMPAR
    80 DELETE FROM _V2_TbTelefones WHERE IdCliente = @IdCliente
    81
    82 --AGORA INSERIR 83 INSERT INTO _V2_TbTelefones
    84 (DDI,DDD,Telefone,IdTelefoneTipo,IdCliente)
    85 (SELECT DDI,DDD,Telefone,IdTelefoneTipo,@IdCliente FROM _V2_TbTempTelefones WHERE IdTemp = @IdTemp)
    86 87 --UPDATE NA TABELA DE ENDERECOS
    88 --PRIMEIRO LIMPAR
    89 DELETE FROM _V2_TbEnderecos WHERE IdCliente = @IdCliente
    90
    91 --AGORA INSERIR 92 INSERT INTO _V2_TbEnderecos
    93 (Logradouro,Numero,Complemento,CEP,Bairro,Cidade,Estado,IdPais,IdCliente)
    94 (SELECT Logradouro,Numero,Complemento,CEP,Bairro,Cidade,Estado,IdPais,@IdCliente FROM _V2_TbTempEnderecos WHERE IdTemp = @IdTemp)
    95 96
    97 98 --UPDATE NA TABELA DE SECRETARIAS
    99 --PRIMEIRO LIMPAR
    100 DELETE FROM _V2_TbClientesSecretarias WHERE IdSecretaria = @IdCliente
    101 DELETE FROM _V2_TbClientesSecretarias WHERE IdCliente = @IdCliente
    102
    103 --AGORA INSERIR 104 INSERT INTO _V2_TbClientesSecretarias
    105 (IdCliente,IdSecretaria)
    106 (SELECT IdCliente,IdSecretaria FROM _V2_TbTempClientesSecretarias WHERE IdTemp = @IdTemp)
    107
    108 109 --UPDATE NA TABELA DE FILHOS
    110 --PRIMEIRO LIMPAR
    111 DELETE FROM _V2_TbFilhos WHERE IdCliente = @IdCliente
    112
    113 --AGORA INSERIR 114 INSERT INTO _V2_TbFilhos
    115 (IdCliente,Nome,DtNascimento)
    116 (SELECT IdCliente,Nome,DtNascimento FROM _V2_TbTempFilhos WHERE IdTemp = @IdTemp)
    117 118 119 --UPDATE NA TABELA DE PSICOGRAFICOS
    120 --PRIMEIRO LIMPAR
    121 DELETE FROM _V2_TbClientesPsicograficos WHERE IdCliente = @IdCliente
    122
    123 --AGORA INSERIR 124 INSERT INTO _V2_TbClientesPsicograficos
    125 (IdCliente,IdPsicograficoTipo,IdPsicograficoSubTipo,Outros)
    126 (SELECT IdCliente,IdPsicograficoTipo,IdPsicograficoSubTipo,Outros FROM _V2_TbTempClientesPsicograficos WHERE IdTemp = @IdTemp)
    127
    128 129 130 --INSERIR LOGS AGORA
    131 132 --PRIMEIRO A TABELA DE CONTROLE DOS LOGS
    133 DECLARE @IdUsuario AS INT --USUARIO QUE FEZ A ALTERACAO 134 SET @IdUsuario = (SELECT IdUsuario FROM _V2_TbTemps WHERE IdTemp = @IdTemp)
    135 136 DECLARE @IdLog AS INT
    137 SET
    @IdLog = (SELECT ISNULL(MAX(IdLog) + 1,1) FROM _V2_TbLogs)
    138 139 140 INSERT INTO _V2_TbLogs
    141 (IdLog,IdCliente,IdUsuario,IdUsuarioAprovacao,DtLog)
    142 VALUES 143 (@IdLog,@IdCliente,@IdUsuario,@IdUsuarioAprovacao,GETDATE())
    144
    145
    146 --AGORA INSERIR DIRETO E RETO 147 INSERT INTO _V2_TbLogClientes
    148 (IdLog,IdCliente,Nome,Tratamento,Sexo,Email,CargoNaEmpresa,FlEmailOptIn,FlContatoDesmond,FlAccountManager,FlContatoPresidencia,
    149 FlContatoJuridico,FlContatoRH,FlContatoProdutos,FlFuncTercMasterCard,FlRecebeBolo,FlGrupoDiversidade,DtNascimento,DtUltimaAtualizacao,FlExcluido,DtExclusao,
    150 IdEmpresa,IdQualificacao,IdEstadoCivil,IdAtuacao,IdPublico,IdNivelHierarquico,IdArea)
    151 (SELECT @IdLog,IdCliente,Nome,Tratamento,Sexo,Email,CargoNaEmpresa,FlEmailOptIn,FlContatoDesmond,FlAccountManager,FlContatoPresidencia,
    152 FlContatoJuridico,FlContatoRH,FlContatoProdutos,FlFuncTercMasterCard,FlRecebeBolo,FlGrupoDiversidade,DtNascimento,DtUltimaAtualizacao,FlExcluido,DtExclusao,
    153 IdEmpresa,IdQualificacao,IdEstadoCivil,IdAtuacao,IdPublico,IdNivelHierarquico,IdArea FROM _V2_TbTempClientes WHERE IdTemp = @IdTemp)
    154
    155 INSERT INTO _V2_TbLogTelefones
    156 (IdLog,DDI,DDD,Telefone,IdTelefoneTipo,IdCliente)
    157 (SELECT @IdLog,DDI,DDD,Telefone,IdTelefoneTipo,IdCliente FROM _V2_TbTempTelefones WHERE IdTemp = @IdTemp)
    158
    159 INSERT INTO _V2_TbLogEnderecos
    160 (IdLog,Logradouro,Numero,Complemento,CEP,Bairro,Cidade,Estado,IdPais,IdCliente)
    161 (SELECT @IdLog,Logradouro,Numero,Complemento,CEP,Bairro,Cidade,Estado,IdPais,IdCliente FROM _V2_TbTempEnderecos WHERE IdTemp = @IdTemp)
    162
    163 INSERT INTO _V2_TbLogClientesSecretarias
    164 (IdLog,IdCliente,IdSecretaria)
    165 (SELECT @IdLog,IdCliente,IdSecretaria FROM _V2_TbTempClientesSecretarias WHERE IdTemp = @IdTemp)
    166
    167 --INSERINDO OS LOGS PARA TODOS OS AFETADOS NA RELACAO SECRETARIA X EXECUTIVO 168 IF (@GerarLogSecretaria = 'TRUE')
    169 BEGIN
    170
    171 DECLARE
    @OldIdNivelHierarquico AS INT ,@NewIdNivelHierarquico AS INT,@LastIdLog AS INT
    172 SET
    @LastIdLog = (SELECT TOP 1 IdLog FROM _V2_TbLogs WHERE IdCliente = @IdCliente ORDER BY DtLog DESC)
    173 SET @OldIdNivelHierarquico = (SELECT IdNivelHierarquico FROM _V2_TbLogClientes WHERE IdLog = @LastIdLog)
    174 SET @NewIdNivelHierarquico = (SELECT IdNivelHierarquico FROM _V2_TbTempClientes WHERE IdTemp = @IdTemp)
    175 DECLARE @TempTable TABLE (IdTemp INT)
    176 DECLARE @IdTempTemp AS INT
    177 DECLARE
    @IdSecExec AS INT
    178
    179 --ERA SECRETARIA E VIROU EXECUTIVA 180 IF ( (@OldIdNivelHierarquico = 72 OR @OldIdNivelHierarquico = 17) AND (@NewIdNivelHierarquico <> 72 AND @NewIdNivelHierarquico <> 17) )
    181 BEGIN
    182 PRINT
    ('ERA SEC E VIROU EXEC')
    183 DELETE FROM @TempTable
    184
    185 --DROPANDO TODA RELAÇÃO COM EXECUTIVOS QUE TINHA 186 DECLARE CrSecExec CURSOR LOCAL
    187 FOR SELECT
    IdCliente FROM _V2_TbLogClientesSecretarias WHERE IdLog = @LastIdLog;
    188
    189 OPEN CrSecExec
    190 FETCH NEXT FROM CrSecExec INTO @IdSecExec
    191
    192 WHILE ( @@Fetch_Status = 0 )
    193 BEGIN 194 --CARREGANDO ELE NO TEMP 195 INSERT INTO @TempTable EXEC _v2_SpClienteUpdate @IdSecExec,@IdUsuarioAprovacao
    196 SET @IdTempTemp = (SELECT IdTemp FROM @TempTable)
    197
    198 --DELETANDO A SECRETARIA QUE ERA DO EXECUTIVO NO TEMP 199 DELETE FROM _V2_TbTempClientesSecretarias WHERE IdTemp = @IdTempTemp AND IdSecretaria = @IdCliente
    200
    201 --COMITANDO O CLIENTE 202 EXEC _V2_SpTempClienteUpdate @IdSecExec,@IdUsuarioAprovacao,'FALSE',@IdTempTemp
    203
    204 FETCH NEXT FROM CrSecExec INTO @IdSecExec
    205
    206 END
    207 CLOSE
    CrSecExec
    208 DEALLOCATE CrSecExec
    209
    210
    211 DELETE FROM @TempTable
    212 --CRIANDO NOVAS RELAÇÕES COM SECRETARIAS 213 DECLARE CrSecExec CURSOR LOCAL
    214 FOR SELECT
    IdSecretaria FROM _V2_TbTempClientesSecretarias WHERE IdTemp = @IdTemp;
    215
    216 OPEN CrSecExec
    217
    218 FETCH NEXT FROM CrSecExec INTO @IdSecExec
    219 WHILE ( @@Fetch_Status = 0 )
    220 BEGIN 221 --CARREGANDO A SECRETARIA NO TEMP 222 INSERT INTO @TempTable EXEC _v2_SpClienteUpdate @IdSecExec,@IdUsuarioAprovacao
    223 SET @IdTempTemp = (SELECT IdTemp FROM @TempTable)
    224
    225 --ALTERANDO A SECRETARIA NO TEMP 226 INSERT INTO _V2_TbTempClientesSecretarias
    227 (IdTemp,IdCliente,IdSecretaria)
    228 VALUES
    229 (@IdTempTemp,@IdCliente,@IdSecExec)
    230
    231 --COMITANDO A SECRETARIA 232 EXEC _V2_SpTempClienteUpdate @IdSecExec,@IdUsuarioAprovacao,'FALSE',@IdTempTemp
    233
    234 FETCH NEXT FROM CrSecExec INTO @IdSecExec
    235 END
    236
    237 CLOSE
    CrSecExec
    238 DEALLOCATE CrSecExec
    239 END 240
    241 --ERA EXECUTIVA E VIROU SECRETARIA 242 ELSE IF ( (@OldIdNivelHierarquico <> 72 AND @OldIdNivelHierarquico <> 17) AND (@NewIdNivelHierarquico = 72 AND @NewIdNivelHierarquico = 17) )
    243 BEGIN
    244 PRINT
    ('ERA EXEC E VIROU SEC')
    245 DELETE FROM @TempTable
    246 --DROPANDO TODA RELAÇÃO COM AS SECRETARIAS QUE TINHA 247 DECLARE CrSecExec CURSOR LOCAL
    248 FOR SELECT
    IdSecretaria FROM _V2_TbLogClientesSecretarias WHERE IdLog = @LastIdLog;
    249
    250 OPEN CrSecExec
    251
    252 FETCH NEXT FROM CrSecExec INTO @IdSecExec
    253 WHILE ( @@Fetch_Status = 0 )
    254 BEGIN 255 --CARREGANDO ELE NO TEMP 256 INSERT INTO @TempTable EXEC _v2_SpClienteUpdate @IdSecExec,@IdUsuarioAprovacao
    257 SET @IdTempTemp = (SELECT IdTemp FROM @TempTable)
    258
    259 --ALTERANDO A SECRETARIA NO TEMP 260 DELETE FROM _V2_TbTempClientesSecretarias WHERE IdTemp = @IdTempTemp AND IdCliente = @IdCliente
    261
    262 --COMITANDO O CLIENTE 263 EXEC _V2_SpTempClienteUpdate @IdSecExec,@IdUsuarioAprovacao,'FALSE',@IdTempTemp
    264
    265 FETCH NEXT FROM CrSecExec INTO @IdSecExec
    266 END
    267 CLOSE
    CrSecExec
    268 DEALLOCATE CrSecExec
    269
    270
    271 DELETE FROM @TempTable
    272 --CRIANDO NOVAS RELAÇÕES COM EXECUTIVOS 273 DECLARE CrSecExec CURSOR LOCAL
    274 FOR SELECT
    IdCliente FROM _V2_TbTempClientesSecretarias WHERE IdTemp = @IdTemp;
    275
    276 OPEN CrSecExec
    277
    278 FETCH NEXT FROM CrSecExec INTO @IdSecExec
    279 WHILE ( @@Fetch_Status = 0 )
    280 BEGIN 281 --CARREGANDO O EXECUTIVO NO TEMP 282 INSERT INTO @TempTable EXEC _v2_SpClienteUpdate @IdSecExec,@IdUsuarioAprovacao
    283 SET @IdTempTemp = (SELECT IdTemp FROM @TempTable)
    284
    285 --ALTERANDO A SECRETARIA DO EXECUTIVO NO TEMP 286 INSERT INTO _V2_TbTempClientesSecretarias
    287 (IdTemp,IdCliente,IdSecretaria)
    288 VALUES
    289 (@IdTempTemp,@IdSecExec,@IdCliente)
    290
    291 --COMITANDO O EXECUTIVO 292 EXEC _V2_SpTempClienteUpdate @IdSecExec,@IdUsuarioAprovacao,'FALSE',@IdTempTemp
    293
    294 FETCH NEXT FROM CrSecExec INTO @IdSecExec
    295 END
    296
    297 CLOSE
    CrSecExec
    298 DEALLOCATE CrSecExec
    299 END 300
    301 --CONTINUA SENDO SECRETARIA 302 ELSE IF ( (@OldIdNivelHierarquico = 72 OR @OldIdNivelHierarquico = 17) AND (@NewIdNivelHierarquico = 72 OR @NewIdNivelHierarquico = 17) )
    303 BEGIN
    304 PRINT
    ('CONTINUA SEC')
    305 DELETE FROM @TempTable
    306 --DROPANDO RELACOES COM OS EXECUTIVOS QUE DEIXOU DE TER307 PRINT('-----> LASTIDLOG -->' + CONVERT(VARCHAR,@LastIdLog))
    308 PRINT('
    -----> IDTEMP -->' + CONVERT(VARCHAR,@IdTemp))
    309 DECLARE CrSecExec CURSOR LOCAL
    310 FOR
    (SELECT * FROM (SELECT IdCliente FROM _V2_TbLogClientesSecretarias WHERE IdLog = @LastIdLog) AS Old WHERE IdCliente NOT IN (SELECT IdCliente FROM _V2_TbTempClientesSecretarias WHERE IdTemp = @IdTemp));
    311 PRINT('FETCH 1 ' + CONVERT(VARCHAR,@@FETCH_STATUS))
    312 OPEN CrSecExec
    313 PRINT('FETCH 2 ' + CONVERT(VARCHAR,@@FETCH_STATUS))
    314 FETCH NEXT FROM CrSecExec INTO @IdSecExec
    315 PRINT('FETCH 3 ' + CONVERT(VARCHAR,@@FETCH_STATUS))
    316 SELECT @IdSecExec
    317 PRINT('FETCH 4 ' + CONVERT(VARCHAR,@@FETCH_STATUS))
    318 PRINT('IDCLIENTEANTIGO ' + CONVERT(VARCHAR,@IdSecExec))
    319 WHILE ( @@Fetch_Status = 0 )
    320 BEGIN
    321 PRINT
    ('DROPPING ' + CONVERT(VARCHAR,@IdSecExec))
    322 --CARREGANDO ELE NO TEMP323 INSERT INTO @TempTable EXEC _v2_SpClienteUpdate @IdSecExec,@IdUsuarioAprovacao
    324 SET @IdTempTemp = (SELECT IdTemp FROM @TempTable)
    325
    326 --DELETANDO A SECRETARIA QUE ERA DO EXECUTIVO NO TEMP327 DELETE FROM _V2_TbTempClientesSecretarias WHERE IdTemp = @IdTempTemp AND IdSecretaria = @IdCliente
    328
    329 --COMITANDO O CLIENTE330 EXEC _V2_SpTempClienteUpdate @IdSecExec,@IdUsuarioAprovacao,'FALSE',@IdTempTemp
    331
    332 FETCH NEXT FROM CrSecExec INTO @IdSecExec
    333 END
    334 CLOSE
    CrSecExec
    335 DEALLOCATE CrSecExec
    336
    337
    338 DELETE FROM @TempTable
    339 --CRIANDO NOVAS RELAÇÕES COM EXECUTIVOS340 DECLARE CrSecExec CURSOR LOCAL
    341 FOR SELECT
    IdCliente FROM _V2_TbTempClientesSecretarias WHERE IdTemp = @IdTemp AND IdCliente NOT IN (SELECT IdCliente FROM _V2_TbLogClientesSecretarias WHERE IdLog = @LastIdLog);
    342
    343 OPEN CrSecExec
    344
    345 FETCH NEXT FROM CrSecExec INTO @IdSecExec
    346 WHILE ( @@Fetch_Status = 0 )
    347 BEGIN
    348 PRINT
    ('INSERTING ' + CONVERT(VARCHAR,@IdSecExec))
    349 --CARREGANDO O EXECUTIVO NO TEMP350 INSERT INTO @TempTable EXEC _v2_SpClienteUpdate @IdSecExec,@IdUsuarioAprovacao
    351 SET @IdTempTemp = (SELECT IdTemp FROM @TempTable)
    352
    353 --ALTERANDO A SECRETARIA DO EXECUTIVO NO TEMP354 INSERT INTO _V2_TbTempClientesSecretarias
    355 (IdTemp,IdCliente,IdSecretaria)
    356 VALUES
    357 (@IdTempTemp,@IdSecExec,@IdCliente)
    358
    359 --COMITANDO O EXECUTIVO 360 EXEC _V2_SpTempClienteUpdate @IdSecExec,@IdUsuarioAprovacao,'FALSE',@IdTempTemp
    361
    362 FETCH NEXT FROM CrSecExec INTO @IdSecExec
    363 END
    364
    365 CLOSE
    CrSecExec
    366 DEALLOCATE CrSecExec
    367
    368 END 369
    370 --CONTINUA SENDO EXECUTIVO 371 ELSE IF ( (@OldIdNivelHierarquico <> 72 OR @OldIdNivelHierarquico <> 17) AND (@NewIdNivelHierarquico <> 72 OR @NewIdNivelHierarquico <> 17) )
    372 BEGIN
    373 PRINT
    ('CONTINUA EXEC')
    374 DELETE FROM @TempTable
    375 --DROPANDO TODA RELAÇÃO COM AS SECRETARIAS QUE TINHA 376 DECLARE CrSecExec CURSOR LOCAL
    377 FOR SELECT
    IdSecretaria FROM (SELECT IdSecretaria FROM _V2_TbLogClientesSecretarias WHERE IdLog = @LastIdLog) AS Old WHERE IdSecretaria NOT IN (SELECT IdSecretaria FROM _V2_TbTempClientesSecretarias WHERE IdTemp = @IdTemp);
    378
    379 OPEN CrSecExec
    380
    381 FETCH NEXT FROM CrSecExec INTO @IdSecExec
    382 WHILE ( @@Fetch_Status = 0 )
    383 BEGIN 384 --CARREGANDO ELE NO TEMP 385 INSERT INTO @TempTable EXEC _v2_SpClienteUpdate @IdSecExec,@IdUsuarioAprovacao
    386 SET @IdTempTemp = (SELECT IdTemp FROM @TempTable)
    387
    388 --ALTERANDO A SECRETARIA NO TEMP 389 DELETE FROM _V2_TbTempClientesSecretarias WHERE IdTemp = @IdTempTemp AND IdCliente = @IdCliente
    390
    391 --COMITANDO O CLIENTE 392 EXEC _V2_SpTempClienteUpdate @IdSecExec,@IdUsuarioAprovacao,'FALSE',@IdTempTemp
    393
    394 FETCH NEXT FROM CrSecExec INTO @IdSecExec
    395 END
    396 CLOSE
    CrSecExec
    397 DEALLOCATE CrSecExec
    398
    399 DELETE FROM @TempTable
    400 --CRIANDO NOVAS RELAÇÕES COM SECRETARIAS 401 DECLARE CrSecExec CURSOR LOCAL
    402 FOR SELECT
    IdSecretaria FROM _V2_TbTempClientesSecretarias WHERE IdTemp = @IdTemp AND IdSecretaria NOT IN (SELECT IdSecretaria FROM _V2_TbLogClientesSecretarias WHERE IdLog = @LastIdLog);
    403
    404 OPEN CrSecExec
    405
    406 FETCH NEXT FROM CrSecExec INTO @IdSecExec
    407 WHILE ( @@Fetch_Status = 0 )
    408 BEGIN 409 --CARREGANDO A SECRETARIA NO TEMP 410 INSERT INTO @TempTable EXEC _v2_SpClienteUpdate @IdSecExec,@IdUsuarioAprovacao
    411 SET @IdTempTemp = (SELECT IdTemp FROM @TempTable)
    412
    413 --ALTERANDO A SECRETARIA NO TEMP 414 INSERT INTO _V2_TbTempClientesSecretarias
    415 (IdTemp,IdCliente,IdSecretaria)
    416 VALUES
    417 (@IdTempTemp,@IdCliente,@IdSecExec)
    418
    419 --COMITANDO A SECRETARIA 420 EXEC _V2_SpTempClienteUpdate @IdSecExec,@IdUsuarioAprovacao,'FALSE',@IdTempTemp
    421
    422 FETCH NEXT FROM CrSecExec INTO @IdSecExec
    423 END
    424
    425 CLOSE
    CrSecExec
    426 DEALLOCATE CrSecExec
    427 END
    428
    429
    430 END
    431
    432
    433
    434 INSERT INTO
    _V2_TbLogClientesPsicograficos
    435 (IdLog,IdCliente,IdPsicograficoTipo,IdPsicograficoSubTipo,Outros)
    436 (SELECT @IdLog,IdCliente,IdPsicograficoTipo,IdPsicograficoSubTipo,Outros FROM _V2_TbTempClientesPsicograficos WHERE IdTemp = @IdTemp)
    437
    438
    439 --FINALMENTE LIMPAR AS TABELAS TEMPORARIAS 440 DELETE FROM _V2_TbTempTelefones WHERE IdTemp = @IdTemp
    441 DELETE FROM _V2_TbTempEnderecos WHERE IdTemp = @IdTemp
    442 DELETE FROM _V2_TbTempClientesSecretarias WHERE IdTemp = @IdTemp
    443 DELETE FROM _V2_TbTempClientesPsicograficos WHERE IdTemp = @IdTemp
    444 DELETE FROM _V2_TbTempFilhos WHERE IdTemp = @IdTemp
    445 DELETE FROM _V2_TbTempClientes WHERE IdTemp = @IdTemp
    446 DELETE FROM _V2_TbTemps WHERE IdTemp = @IdTemp
    447 448 449 450 451 452 453 454
      
    Lil Crappie Programmer
Page 1 of 1 (1 items)