Visual Basic - Parametros de salida con vb6 + mysql

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil
Val: 1
Ha aumentado su posición en 86 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Parametros de salida con vb6 + mysql

Publicado por Matias (136 intervenciones) el 21/10/2008 18:52:58
Bueno necesito llamar a un proc almacenado en mysql y recuperar un dato de salida

este es el procedimiento mysql

create procedure nuevaventa(importe decimal (15, 2), out codigo int)

begin
insert into ventas (codventa, importe) values (null, importe);

select last_insert_id() into @last;

set codigo = @last;

end

la table solo tiene codventa autoincrement e importe


si lo llamo desde el servidor mysql funciona bien

call nuevaventa(null, 120.02)

ahora desde vb6 intento dos maneras

**********************************************************************************************

Dim rs As ADODB.Recordset
Dim db As ADODB.Connection
Dim cmd As ADODB.Command
Dim codigo As Integer

Private Sub Command1_Click()
Set cmd = New ADODB.Command
cmd.ActiveConnection = db
cmd.CommandType = adCmdStoredProc


con o sin esto

----------------------------------------------------------------------------------------------------------------------------------
cmd.Parameters.Append cmd.CreateParameter("Codventa", adinteger, adParamInput, 10, null)
------------------------------------------------------------------------------------------------------------------------------------
cmd.Parameters.Append cmd.CreateParameter("Importe", adDecimal, adParamInput, 10, Text1)
cmd.Parameters.Append cmd.CreateParameter("codigo", adInteger, adParamOutput, 3, codigo)



cmd.CommandText = "nuevaventa"

cmd.Execute

cmd.CommandText queda asi

{call nuevaventa(?,?)}

esto me da error de sintaxys

***********************************************************************************************

la otra forma es esta

***********************************************************************************************

Dim rs As ADODB.Recordset
Dim db As ADODB.Connection
Dim cmd As ADODB.Command

Private Sub Command1_Click()
Set cmd = New ADODB.Command
cmd.ActiveConnection = db

cmd.CommandText = "call nuevaventa" & "(" & Text1 & "," & "@a" & ")"
MsgBox (cmd.CommandText)
cmd.Execute



End Sub

**********************************************************************************************

Esto no me da error lo ejecuta bien pero no entiendo como capturar ese valor de salida.
Bueno gracias por su ayuda
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder