Hola, estoy utilizando un código en Visual Basic para ejecutar un CL en el AS/400 desde un Excel.

No conozco del todo cómo funciona, pero creo que primero establece una conexión al AS/400 vía ODBC y luego utiliza el método Execute aplicado a dicha conexión.

El código es el siguiente:

 

Dim ODBC_AS400 As Workspace

Dim MyConex As Connection

Dim Str As String

 

' Crea el objeto ODBCDirect Workspace

Set ODBC_AS400 = CreateWorkspace("NuevoWorkspaceODBC", "admin", "", dbUseODBC)

 

' Abre el objeto Connection utilizando la información proporcionada en la cadena de conexión  

Set MyConex = ODBC_AS400.OpenConnection("conexion1", dbDriverNoPrompt, , _

    "ODBC;DATABASE=TRANSFER;UID=JOSE;PWD=JOSE2006;DSN=as400")

 

' Define el mandato a enviar y lo ejecuta en el AS/400

Str = "CALL MIBIBLIO.MICL"

MyConex.Execute (Str)

 

'Cierra la conexión

Set MyConex = Nothing

 

 

El caso es que funciona, pero ahora me ha salido un problema, y es que necesito pasarle un parámetro al CL, y no sé cómo hacerlo. Las pruebas que he hecho, tipo

Str = "CALL MIBIBLIO.MICL 'PARAM1'"

me las devuelve con error, por lo que deduzco que hay algo en la sintaxis que estoy haciendo mal.

Alguna idea?

Gracias

 

Juan Ferre

S.A.COTTET

Responder a