Llamar programa as400 desde Visual basic

Debo llamar un programa residente en un AS400 desde Visual Basic, usando ADO y ODBC, el DSN ya está configurado,
llamo al programa así:
"{CALL SAEPRGP.TRPA0001(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)}"
Luego, agrego los parámetros de entrada y salida:
cmm.Parameters(3).Direction = adParamOutput
Y finalmente ejecuto el comando, sin embargo me da el siguiente mensaje de error:
"[IBM] [ODBC driver de Client Access Express]No se ha llamado a SQLBindParameter para el parámetro #22"
El programa recibe 22 parámetros y todos los estoy agregando de la misma forma.

1 respuesta

Respuesta
1
Te sugeriría que mejor en lugar de pasar 22 parámetros... lo puedas guardar en un archivo y actualizar el archivo en el as/400 ( ya que 22 parámetros no es funcional)... te todas maneras te envío un ejemplo de call al as/400.
'Realiza La comunicación al AS/400 mediante ODBC
Set wspAS400 = DBEngine.CreateWorkspace("ODBCWorkspace", "", "", dbUseODBC)
Set dbAS400 = wspAS400.OpenDatabase("TemporaryName", , , "ODBC;DATABASE=DATOS;UID=" & USU & ";PWD=" & PASS & ";DSN=DATOS")
Set cntAS400 = wspAS400.Connections(0)
'CORRE EL PROGRAMA EN EL AS4000 UN CL LLAMADO SCFRENB
strCmd = Trim("CALL PGM(SCPOBJ/SCFRENB) PARM(" & FECHAP & ")")
dbAS400.Execute ("CALL QSYS.QCMDEXC ('" & strCmd & "', " & Format(Len(strCmd), "0000000000") & ".00000)")

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas