Usuário com melhor resposta
Como chamar uma store procedure com vb6 e ado

Pergunta
-
Respostas
-
Olá Teles
Acho que você levantou essa questão em outro post, certo? Bem, no Oracle, quando há um ou mais parâmetros de saída do tipo REF CURSOR, o tratamento é diferente. É preciso chamar a SP de uma outra maneira:
With cmd
Set .ActiveConnection = CNP
.CommandText = "{CALL PACOTE.DADOS_PESSOA(?, ?, {resultset 0, meu_cursor})}"
.CommandType = adCmdStoredProc
End WithDê uma investigada, como não tenho um db Oracle aqui, não consegui testar, mas tenho certeza que o caminho é esse.
Boa sorte!!!
- Sugerido como Resposta AndreAlvesLimaModerator sexta-feira, 23 de julho de 2010 21:57
- Marcado como Resposta AndreAlvesLimaModerator sexta-feira, 6 de agosto de 2010 23:42
-
Nádia,
Tenta o seguinte:
após o código [ .CommandText = "sp_retornar_registro" ] coloque:
.Properties("PLSQLRSet") = True
e após a execução [ Set rst = cmd.Execute() ] coloque:
.Properties("PLSQLRSet") = False
MNC
- Sugerido como Resposta AndreAlvesLimaModerator sexta-feira, 23 de julho de 2010 21:57
- Marcado como Resposta AndreAlvesLimaModerator sexta-feira, 6 de agosto de 2010 23:42
Todas as Respostas
-
Use a classe ADODB.Command para excutar a SP e assciar parametros à mesma.
Boa sorte!!!
Dim cnn As New ADODB.Connection
Dim cmd As New ADODB.Command
Dim par_codigo As ADODB.Parameter
Dim par_nome As ADODB.Parameter
Dim rst As ADODB.RecordSet
cnn.ConnectionString = "<...>"
cnn.OpenSet cmd = New ADODB.Command
With cmd
Set .ActiveConnection = cnn
.CommandType = adCmdStoredProc
.CommandText = "sp_retornar_registro"
End With
Set par_codigo = cmd.CreateParameter("@codigo", adInteger, adParamInput)
Set par_nome = cmd.CreateParameter("@nome", adVarChar, adParamInput)par_codigo.Value = 10
par_nome.Value = "Teste"
cmd.Parameters.Append par_codigo
cmd.Parameters.Append par_nomeSet rst = cmd.Execute()
Do Until rst.EOF
MsgBox rst.Fileds(0)
rst.MoveNext
Loop -
-
Olá Teles
Acho que você levantou essa questão em outro post, certo? Bem, no Oracle, quando há um ou mais parâmetros de saída do tipo REF CURSOR, o tratamento é diferente. É preciso chamar a SP de uma outra maneira:
With cmd
Set .ActiveConnection = CNP
.CommandText = "{CALL PACOTE.DADOS_PESSOA(?, ?, {resultset 0, meu_cursor})}"
.CommandType = adCmdStoredProc
End WithDê uma investigada, como não tenho um db Oracle aqui, não consegui testar, mas tenho certeza que o caminho é esse.
Boa sorte!!!
- Sugerido como Resposta AndreAlvesLimaModerator sexta-feira, 23 de julho de 2010 21:57
- Marcado como Resposta AndreAlvesLimaModerator sexta-feira, 6 de agosto de 2010 23:42
-
Nádia,
Tenta o seguinte:
após o código [ .CommandText = "sp_retornar_registro" ] coloque:
.Properties("PLSQLRSet") = True
e após a execução [ Set rst = cmd.Execute() ] coloque:
.Properties("PLSQLRSet") = False
MNC
- Sugerido como Resposta AndreAlvesLimaModerator sexta-feira, 23 de julho de 2010 21:57
- Marcado como Resposta AndreAlvesLimaModerator sexta-feira, 6 de agosto de 2010 23:42