PDF de programación - Conexión Visual Basic con DB2/400

Imágen de pdf Conexión Visual Basic con DB2/400

Conexión Visual Basic con DB2/400gráfica de visualizaciones

Publicado el 14 de Enero del 2017
2.345 visualizaciones desde el 14 de Enero del 2017
100,4 KB
6 paginas
Creado hace 19a (30/04/2004)
Conexión Visual Basic con DB2/400


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

Microsoft Data Access Components 2.7 u otra version (MDAC_TYPE 2.X)
Client Express
Visual Basic 5.0 o 6.0 etc.

Con esto basta

Instalación :


1.- Instalar Visual Basic x.x
2.- Instalar Client Express, de preferencia opción personalizado luego full. Después de terminar de instalar
configura para que se conecte al Iseries.
3.- Instalar el mdac_type 2.x.

listo ya tenemos preparado todo para poder programar.




Desarrollo :

Cargamos el VB luego en la barra de menu ingresamos a Proyecto – Preferencias seleccionamos Microsoft
Actives Data Objects 2.7 Library este ActiveX se adiciono cuando instalamos el Mdat_type 2.7 podemos
utilizar tambien el 2.6; también seleccionamos el ActiveX IBM AS/400 Client Acces Express Activex este
se adicion al instalar el Client Express.



luego de aceptar estos ActiveX empezamos a codificar.


Adicionamos un modulo (Proyecto – agregar modulo )

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

'WsystemName extrae el nombre del Iseries
Global WSystemName As New cwbx.SystemNames

'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

'Variable utilizadas en la Conexion
Global cn400 As ADODB.Connection

'Variable utilizada para crear el RecordSet
Global rs400 As ADODB.Recordset

'Otros
Global Wlib, sql As String
Global WfechaSys, wtime, lin, des As String
Global hwnd As Variant


‘Procedimiento Conexión y algo adicional

Public Sub Conexion()

'Extrae nombre del servidor Client Express
Set as400 = New cwbx.AS400System
Set Wpgm.System = as400
as400.Define WSystemName.DefaultSystem

'Ingreso de Usuario y Contraseña
as400.WindowHandle = hwnd
as400.UserID = ""
as400.Password = ""
as400.PromptMode = cwbcoPromptDefault
as400.Signon
wuser = as400.UserID

'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"

'Configuración del comando y el pgm Client Express
Set Wpgm.System = as400

'Recupera Parámetros de Fecha
Wparms.Clear
' Fecha es una constante cualquiera y cwbrcInout, 8 define un parámetro de entrada y salida de 8 que
'necesita el CLP para poderse ejecutarse y que devolverá la Fecha
Wparms.Append "Fecha", cwbrcInout, 8

' 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.

Private Sub Form_Load()
Call Conexion
Call llenado
End Sub

Private Sub Form_Unload(Cancel As Integer)
cn400.Close
Set cn400 = Nothing
Unload Me
End Sub

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 :



Código del Programa RPGLE


Columnas . . : 6 76 Examen LIB_PCBR/QRPGLESRC
SEU==> FECHAVB
FMT * *. 1 ...+... 2 ...+... 3 ...+... 4 ...+... 5 ...+... 6 ...+... 7 ...+.
0019.00 **********************************************************************
0020.00 h DATEDIT(*YMD)
0021.00 d wfecha s 8a
0022.00 * ---------------------------------------------------------
0158.00 c setoff LR
0159.00 c move *date wfecha
0161.00 c seton LR
0162.00 * ---------------------------------------------------------
0163.00 c *inzsr begsr
0164.00 c *entry plist
0165.00 c parm wfecha
0166.00 c endsr
0167.00 * ---------------------------------------------------------
****************** Fin de datos ***************************************







NOTA :


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



Pablo Barzola Rejas.
  • Links de descarga
http://lwp-l.com/pdf778

Comentarios de: Conexión Visual Basic con DB2/400 (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad