Conexion Al AS400 Sin ODBC
Conexion Al AS400 Sin ODBC
Conexion Al AS400 Sin ODBC
Objetivo :
El siguiente aplicativo tiene como objetivo dar un apoyo a los usuarios que todavía no han logrado
conectarse al as400 mediante un programa visual cliente, en este caso utilizaremos Visual Basic 6.0.
El proveedor que utilizaremos será el de IBM Provider via OLEDB, en resumen nos conectaremos al
Iseries DB2/400 mediante una conexión sin utilizar ODBC toda la conexión estará incluida dentro del código.
Requisitos :
Se necesitan los siguientes requisitos para poder correr este pequeño aplicativo
Instalación :
Option Explicit
'(la variable as400 es una instancia del objeto AS400Systen que la utilizaremos para extraer el nombre Iseries
- en este caso lo llamaremos SIS_PCBR )
'cwbx.AS400System este tipo de objeto es propio del ActiveX del Client Express que sirve para extraer el
nombre del Iseries
Global as400 As New cwbx.AS400System
'Estas variables la utilizaremos para hacer otra prueba interesante que no es del objetivo pero bueno vamos a
mostrarla,
'utilizadas para llamar un programa en el Iseries ya sea un RPGLE,CLP,etc....
Global Wpgm As New cwbx.Program
Global Wparms As New cwbx.ProgramParameters
Global WstrCvtr As New cwbx.StringConverter
'Usuario que se conecto al Iseries
Global wuser As String * 10
'Otros
Global Wlib, sql As String
Global WfechaSys, wtime, lin, des As String
Global hwnd As Variant
'Conexión ADO; Ojo que en Wsystem ya debería estar cargada SYS_PCBR que para este caso es el nombre
de nuestro Sistema esto lo vez cuando lo depuras.
Set cn400 = New ADODB.Connection
cn400.Open "Provider=IBMDA400;DATA SOURCE=" & as400
'Una Variable para cargar el nombre de la libreria donde se encuientra las tablas a trabajar
Wlib = "LIB_PCBR"
' WLIB es una librería en el Iseries y FECHAVB es el nombre del RPGLE el código del RPGLE esta en la
parte final.
Wpgm.LibraryName = WLIB
Wpgm.ProgramName = "FECHAVB"
' Ejecutamos
Wpgm.Call Wparms
' Cargamos el Valor de Retorno que es la fecha en la variable WfechaSys
' WstrCvtr.FromBytes le dice la sistema que el valor retornado lo convierta a un dato String de VB.
WfechaSys = WstrCvtr.FromBytes(Wparms.Item("Fecha").Value)
' Nota :
'si no desea ingresar al Iseries y extraer la fecha del sistema no hay problema bloqueamos el código que esta
'en azul y seguimos con nuestro objetivo. En este manual se incluye el código del programa RPGLE al final.
End Sub
‘Listo con esto ya tenemos la conexión ahora vamos al Formulario para cargar datos a un simple
MSHFlexgrid.
Sub llenado()
sql = "select * from lventab.cli01"
Set rs400 = New ADODB.Recordset
rs400.Open sql, cn400, adOpenForwardOnly, adLockReadOnly
Set grd000.DataSource = rs400
rs400.Close
End Sub
Resultados :
Bueno amigos espero que este pequeño codigo les ayude en algo me disculpan por la ortografía soy pésimo
escribiendo pero ruego que esto se entiendan y los amigos que ya sabían esto también me disculpan por el
tiempo que perdieron pero nuevamente rogare para que a alguien le ayude gracias cualquier cosa me escriben
a la siguiente dirección de correo electrónico [email protected].
Estoy pensando realizar otro pequeño manualito similar a este pero aplicando JAVA y con conexión Nativa
de Iseries no ODBC, depende de ustedes si están interesados me lo piden por intermedio del Foro o mi correo.
Si tienen problemas con la parte de instalación del Client Express me lo hace saber para preparar las
instrucciones paso a paso de cómo conectar al Iseries con el Client Express.
Gracias