VB X FIREBIRD - STORED PROCEDURE
                    Galera é o seguinte, to com um problema
Eu tenho 2 SPs.
Uma pega o ultimo codigo da tabela e soma mais um, como um gerador
E o segundo salva o codigo inutilizado.
Sempre que eu chamo a primeira SP
chamo a segunda SP
depois chamo a primeira SP novamente, dá erro 3021.
Li na internet que preciso preparar e despreparar a SP, mas como faço isso?
Tentei da seguinte forma, mas não funcionou:
Agradeço qualquer tentativa de ajuda. Obrigado.
                
            Eu tenho 2 SPs.
Uma pega o ultimo codigo da tabela e soma mais um, como um gerador
E o segundo salva o codigo inutilizado.
Sempre que eu chamo a primeira SP
chamo a segunda SP
depois chamo a primeira SP novamente, dá erro 3021.
Li na internet que preciso preparar e despreparar a SP, mas como faço isso?
Tentei da seguinte forma, mas não funcionou:
Function PegaCodigo(tabela As String) As Integer
    Dim objCmd As New ADODB.Command
    Dim objRS As New ADODB.Recordset
    Set Banco = New cBanco
    Banco.AbrirBanco
    With objCmd
        .ActiveConnection = Banco.Conexao
        .CommandType = adCmdStoredProc
        .CommandText = [Ô]PICOD[Ô]
        .Parameters.Refresh
        .Parameters(0) = UCase$(Left$(tabela, 3))
        .Prepared = True
    End With
    Set objRS = objCmd.Execute
    PegaCodigo = objRS(0).Value
    Set objRS = Nothing
    objCmd.Prepared = False
    Set objCmd = Nothing
    Banco.FecharBanco
    Set Banco = Nothing
End FunctionAgradeço qualquer tentativa de ajuda. Obrigado.
                    GOODSPEAKERS, obrigado pela dica, 
mas é que um amigo meu falou que no Delphi funciona certinho com o Prepare e o Unprepare
Pq que no VB não da?? Esse é o problema
Obrigado
            mas é que um amigo meu falou que no Delphi funciona certinho com o Prepare e o Unprepare
Pq que no VB não da?? Esse é o problema
Obrigado
                    Vc sabe o que acontece com o Prepare setado com true? Qual é o contexto transacional da invocação das duas SPs ? Tem uma conexão pra cada SP ? Quando vc chama a segunda SP?
                
            
                    Não sei o que acontece com prepare setado como true,
pq eu vi no codigo em Delphi assim conexao.prepare, e conexao.unprepare
Não entendi sua segunda pergunta, LLAIA
È a mesma conexao pros dois SPs. Já tentei abrir e fechar o banco todas as vezes que chama, mas nao deu certo.
Eu chamo a segunda SP quando cancelo um cadastro,
Grato desde ja!
            pq eu vi no codigo em Delphi assim conexao.prepare, e conexao.unprepare
Não entendi sua segunda pergunta, LLAIA
È a mesma conexao pros dois SPs. Já tentei abrir e fechar o banco todas as vezes que chama, mas nao deu certo.
Eu chamo a segunda SP quando cancelo um cadastro,
Grato desde ja!
                    Olha o que acontece com a propriedade Prepared setada:  http://www.devguru.com/Technologies/ado/quickref/command_prepared.html
Vc acha que tem alguma coisa a ver com o erro? Aliás, qual é a descrição do erro 3021? é um erro retornado pelo driver de conexão ou é da ADO?
Pelo código que vc postou, vejo que somente aquela SP usa a conexão, a segunda está de fora. Qual é o código que vc chama a segunda SP ?
E outra, porque não usar o Generator ? Porque salvar código inutilizado? Qual seria a lógica disso?
                
            Vc acha que tem alguma coisa a ver com o erro? Aliás, qual é a descrição do erro 3021? é um erro retornado pelo driver de conexão ou é da ADO?
Pelo código que vc postou, vejo que somente aquela SP usa a conexão, a segunda está de fora. Qual é o código que vc chama a segunda SP ?
E outra, porque não usar o Generator ? Porque salvar código inutilizado? Qual seria a lógica disso?
                    Não sei como usa generator ainda, vou pesquisar sobre isso.
Obrigado LLAIA
            Obrigado LLAIA
                        Tópico encerrado , respostas não são mais permitidas