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 Function
Agradeç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