martes, 18 de agosto de 2009

PowerBuilder y Acces

POWER BUILDER
En panel de control debemos seleccionar Herramientas administrativas



Seleccionar Origenes de Datos (ODBC)


En la siguiente ventana elegimos el controlador para la base de datos con la que trabajremos, como se muestra en la parte seleccionada.


En esta ventana Ponemos un nombre del Origen de datos y la descripccion de la misma. Luego damos clic en Seleccionar


En la siguiente ventana seleccionamos la base de datos con la que vamos a trabajar en mi caso esta en la unidad C:\ y tiene nombre db_ventas.db y damos clic sobre el para seleccionarlo. y damos clic en selecionar sucesivamente.




Creamos un perfil de conexion en powerbuilder

Abrimos powerbuilder y damos clic en database


Damos Clic en ODB ODBC, Luego damos clic en New Profile



Le damos un Nombre al Profile y selccionamos el nombre de la base de datos (lo que creamos en la primera parte: Origen de datos)



Luego damos clic en el Tab Preview, copiamos codigo y damos clic en Test Connection, si el mensane que sale dice: "Connection succeful", aplicar y finalizar de caso contrario verificar los passos anteriores.

En las ojas del ODB ODBC aparecera la base de datos con el nombre elegido en el Profile. Le damos clic derecho y connectamos


Creamos una aplicacion y escribimos el siguiente codigo en el evento Open como se muestra en la figura.



Luego ejecutamos la plicacion y nos saldra un mensaje dependiento si la conexion ha sido exitosa o no.

-Suerte-

Crear Un Origen de Datos y Profile de Conexion en PowerBuilder


CREAR UN ORIGEN DE DATOS
Ingresamos a panel de control, elegimos Herramientas administrativas



Seleccionamos Orígenes de datos (ODBC)









Seleccionamos el controlador para Access (*.mdb que pertenece al office 2003 y anteriores) y damos clic en finalizar.
Observación: Si queremos usar la base de datos Northwind 2007 que viene como ejemplo en el office 2007 la conexión seria exitosa, pero no podríamos ver los registros debido a que las tablas tienen al menos un atributo que se nombran con palabras separadas lo cual no soporta el SQL Anywhere.
Por eso para el ejemplo he creado una base de datos en Access con el nombre: db_ventas











Configuramos el ODBC de Access: Ponemos cualquier nombre de Origen de datos y una descripción. Luego seleccionamos la base de datos con la que vamos a trabajar (clic en seleccionar).







La base de datos que he creado lo busco en la unidad C, debido a que allí ha sido creado. Seleccionamos la DB, damos clic en Aceptar en todas las ventanas. Con ello el Origen de datos se abra creado.
























Creamos un Perfil de Conexión des Power Builder
Abrimos el Power Builder y damos clic en DataBase









Damos Clic derecho en ODB ODBC, Luego damos clic en New Profile














Le damos cualquier nombre en Profile Name y seleccionamos el Origen de Base de datos que creamos anteriormente.















Luego damos clic en el Tab Preview, copiamos el código y damos clic en Test Connection









Sale la primera ventana que debemos de ignorar esto se debe a la Falta de compatibilidad, pero después de ese mensaje debe salir un mensaje que indique que la conexión ha sido satisfactoria. Luego aplicamos y aceptamos.











En la imagen anterior se muestra seleccionada la base de datos, con el nombre de perfil: MiProfile. A este archivo le damos clic derecho y seleccionamos connect.












Conectar la base de datos con la aplicación en Power Builder
Creamos un nuevo proyecto en Power Builder, en la aplicación damos clic derecho y seleccionamos Edit y escribimos lo siguiente:
























/*Pegamos el código generado cuando creamos el Profile*/
// Profile MiProfile
SQLCA.DBMS = "ODBC"
SQLCA.AutoCommit = False
SQLCA.DBParm = "ConnectString='DSN=MiDB;UID=;PWD='"

/*Escribimos la siguiente sentencia SQL*/

connect;

//Verificamos si la conexion ha tenido Exito.

if (sqlca.sqlcode = -1) then //sqlca.sqlcode = -1, error de conexion
messagebox("Verificar","Error en la conexion de la base de datos")
else
messagebox("Felicidades","La conexion de la base de datos es correcta")
end if