Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

ThaisN

[Resolvido] Problema ao recuperar dados de tabela

Recommended Posts

Olá a todos!

 

Estou com um problema em uma aplicaçao em Visual Basic onde leio dados de um Banco Oracle. Estava funcionando tudo muito bem, faço select em tabelas do banco e guardo num RecordSet e funcionava corretamente. Agora necessito saber o nextval de uma sequência e, para isso, vou a tabela Dual (da mesma forma que faço com as outras tabelas) e o sistema me dá o seguinte erro: TableDef, dual, no se ha encontrado

 

É necessário algum tratamento especial para a tabela DUAL?

 

Alguém pode me dar uma luz, por favor!

 

Muito Obrigada a todos!

 

Obs: Náo tenho certeza se este problema se encaixa em Oracle ou VB.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá ThaisN, por favor, poste a parte do código que apresenta o erro para analisarmos.

Obrigado.

 

A minha funçao para retornar o nextval da saquencia é a seguinte:

 


Public Function BuscaSeq()
    
     Dim seq
     Dim pipe As OriginatingPipe
     Dim lista As GRecordset
     
     objConnORA.CreateOriginatingPipe pipe
     
     pipe.Table = "dual"
    
     Set lista = pipe.OutputRecordset
     
     lista.MoveLast
     Dim contador
     contador = lista.RecordCount
     
     If contador < 1 Then
       MsgBox "error"
     Else
        
        seq = lista.GFields("sequniqueipid.nextval")
        
        
        BuscaSeq = seq
     End If

End Function

Já experimentei colocar sys.dual ao invés de dual e o erro persiste. Espero que me possam ajudar!!!

Obrigada!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui resolver alterando o código da seguinte forma:

 


Public Function BuscaSeq()
    
     Dim seq
     Dim pipe As OriginatingPipe
     Dim lista As GRecordset
    
     
     Dim QueryString As String
     
    [b] QueryString = "SELECT SEQUNIQUEIPID.NEXTVAL as sequ FROM sys.dual" [/b]  
     
     Set lista = objConnORA.Database.OpenRecordset(QueryString)

     
     lista.MoveLast
     Dim contador
     contador = lista.RecordCount
     
     If contador < 1 Then
       MsgBox "error"
     Else
        
        seq = lista.GFields("sequ")
        
        BuscaSeq = seq
     End If

End Function

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.