Visual Basic - Parametros de salida con vb6 + mysql

Life is soft - evento anual de software empresarial
   
Vista:

Parametros de salida con vb6 + mysql

Publicado por Matias (135 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
información
Otras secciones de LWP con contenido de Visual Basic
- Código fuente de Visual Basic
- Cursos de Visual Basic
- Temas de Visual Basic
- Chat de Visual Basic
información
Códigos de Visual Basic
- Solitario
- Replicar formulario
- DivXCataloguer