USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Erro estranho com ADODB
KlausLana
TIMÓTEO
MG - BRASIL
ENUNCIADA !
Postada em 02/06/2011 15:49 hs            
Olá Pessoal.

existem vários batchs em VB com Banco de dados Oracle, rodando 24h para cada cliente. Utilizamos uma DLL construída na própria empresa para lidar com a conexão de dados, retorno de recordsets e execução de procedures, etc. A mesma é utilizada por todas as aplicações em VB.

Em apenas um desses batchs está acontecendo um erro ao tentar recuperar o recordset de uma consulta qualquer realizada. Suponha que este batch faça uma média de 8 a 10 consultas por execução, fora as atualizações e inserts.

O problema é que ao tentar recuperar um recordset, é retornado um erro de "object variable not set". Mas NUNCA na mesma query. Acontece de maneira esporádica em várias queries diferentes. As vezes ocorrem 3 a 5 execuções antes de acontecer um erro desses em algum select executado.

Mais estranho ainda é que, rodando a aplicação do VB, o erro acontece e se continuar o debug normalmente e do mesmo ponto onde ocorreu o erro sem alterar o apontador, a query é executada sem nenhum problema.

Ex. Tendo a linha:
Set meuRecordSet = objBanco.GetRecordSet("SELECT * FROM CLIENTE WHERE COD_CLIENTE = 10")

Dá erro nesta linha e logo após continuar o debug, o recordset é retornado normalmente. Eu outras execuções, este mesmo trecho de código não dá erro. Mas pode acontecer de novo, como já ocorreu.

Pontos importantes: A conexão com o BD é aberta ao iniciar o processamento e finalizada ao término da rotina. NUNCA é fechado ou commitado/rollback até o seu final.

Alguma sugestão?
   
Treze
Pontos: 2843 Pontos: 2843
SÃO VICENTE
SP - BRASIL
ENUNCIADA !
Postada em 02/06/2011 18:27 hs            
Estes procedimentos ficam dentro de algum LOOP?
 
   
KlausLana
TIMÓTEO
MG - BRASIL
ENUNCIADA !
Postada em 03/06/2011 09:23 hs            
Existe um select que fica dentro de um timer. Se este retornar algum registro vai ser iniciado um processamento completo da rotina e enquanto estiver rodando o processamento, o timer fica inativo.

Mas um processo dentro de um loop mesmo nao existe.
   
J.Carlos
Pontos: 2843
PRESIDENTE PRUDENTE
SP - BRASIL
ENUNCIADA !
Postada em 03/06/2011 09:40 hs            
Não sei se é o caso, mas se numa stored procedure vc fizer uma atualizção e em seguida fazer uma query na mesma stored, o recorset voltará vazio.
 
TÓPICO EDITADO
 
Treze
não registrado
ENUNCIADA !
Postada em 03/06/2011 11:50 hs   
tem como vc postar o código deste timer?
   
Juan Carlos R.A
Pontos: 2843
MACEIO
AL - BRASIL
ENUNCIADA !
Postada em 03/06/2011 17:17 hs            
esse recordset esta sendo fechado e limpando apos dar update ou insert ou delete para depois consultar novamente:
 
meuRecordSet.close
set meuRecordSet =Nothing
 
vc esta usando eof e not eof se quiser pegar um valor do recordset?
poste o codigo
 
   
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página