La Web del Programador: Comunidad de Programadores
 
    Pregunta:  57072 - COMO PASO PARAMETROS DESDE VISUAL 6 A UN STORED PROCEDURE DE
Autor:  fredy loh
Necesito saber cómo puedo pasar parametros desde mi aplicaion visual 6.0 hacia un procedimiento almacenado en Firebird.

el siguiente codigo en visual basic funciona bien pero para MS sql Server pero no logro que haga lo mismo con firebird

Private Sub Command1_Click()
Dim Comm_SQL As ADODB.Command
Dim Rec As ADODB.Recordset
Dim par1, par2 As ADODB.Parameter

Set Comm_SQL = New ADODB.Command
Set Comm_SQL.ActiveConnection = coneccion

Comm_SQL.CommandText = "PRO_INGRESAALUMNO"
Comm_SQL.CommandType = adCmdStoredProc


Comm_SQL.Parameters(1).Value = Val(TXTRUT)
Comm_SQL.Parameters(1).Value = Val(TXTNOMBRE)
Comm_SQL.Parameters(2).Value = Val(TXTDIRECCION)


Set Rec = Comm_SQL.Execute()

End Sub

El procedimiento almacenado en Firebird es el siguiente:

CREATE PROCEDURE PRO_INGRESAALUMNO(
RUTP CHAR(8) CHARACTER SET WIN1251,
NOMBREP CHAR(50) CHARACTER SET WIN1251,
DIRECCIONP CHAR(50) CHARACTER SET WIN1251)
AS
BEGIN

INSERT into ALUMNOS values(:RUTP,:NOMBREP,:DIRECCIONP);

END

  Respuesta:  Jorge Morales
Hola, el detalle puede estar en que en firebird los SP se ejecutan de varias formas dependiendo del tipo de SP que sea por ejemplo para el que mencionas deberia ser

Execute Procedure PRO_INGRESAALUMNO

Prueba agregando Execute Procedure en la linea que hace falta, o haz como yo

Comm_SQL.CommandText = "Execute Procedure PRO_INGRESAALUMNO('" & Val(TXTRUT) & "', '" & Val(TXTNOMBRE) & "', '"& Val(TXTDIRECCION) & "')"

Comm_SQL.CommandType = adCmdText

Set Rec = Comm_SQL.Execute()

Es lo que te recomiendo y espero no tengas dificultades como sea mi correo es [email protected] por si gustas contactarme. Suerte!