Gestión de conexiones ADO
ActiveX para conectar con proveedores OLE
DB
Este componente ActiveX pretende facilitar la tarea (a veces tan repetitiva) de crear una ventana para que el usuario de nuestra aplicación se conecte a un proveedor de datos OLE-DB a través de ADO (ActiveX Data Objects). Dispone de funcionalidad para crear varias conexiones a distintos proveedores de datos y almacenar estas conexiones en el registro de Windows de forma encriptada.
En la mayoría de aplicaciones cliente-servidor (por lo menos las que yo diseño), la primera acción que se realiza es la de mostrar al usuario una ventana pidiendo usuario y password, para luego, crear una cadena de conexión en a partir de estos parámetros, con el inconveniente de que cada cadena de conexión es distinta para cada tipo de proveedor.
Microsoft Access:
Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=C:\...\Nwind.mdb
SQL Server:
Provider=SQLOLEDB.1;Persist Security Info=True;User ID=sa;Password=sql;Initial Catalog=dbPIM;Data Source=(local)
Oracle:
Provider=MSDAORA.1;Password=scott;User ID=tiger;Data Source=GND;Persist Security Info=True
'Gestión de conexiones ADO para VB 1.0'
El control uysLogin (que así lo he bautizado), se encarga de permitir al desarrollador o al usuario final crear las conexiones con los proveedores, introducir el usuario y el password y conectar con el proveedor. Si el login tiene éxito y se puede conectar con la base de datos, el control produce un evento Connected y como parámetro devuelve un objeto del tipo ADOConnection, si la conexión no se puede crear (por cualquier motivo) se provocará un evento Error que como parámetro devuelve un ErrObject.
Ejemplo de uso:
Código de prueba:
1-En el formulario o en un módulo global declarar una variable Connection.
Public MyCon As Connection
2-En el evento Connected del control uysLogin:
Private Sub uysLogin1_Conected(oCon As ADODB.Connection, sUser As String, sPassword As String)
Set MyCon = oCon
MsgBox "Conectado!" & vbNewLine & MyCon.ConnectionString, vbExclamation
End Sub
Tachán! Ya está! Si todo ha ido bien, claro... si no tendremos que codificar en el evento Error (para que nos avise de cuándo la conexión no se ha realizado con éxito).
Private Sub uysLogin1_Error(Err As ErrObject)
MsgBox Err.Description, vbCritical
End Sub
Hay otros eventos y propiedades para personalizar un poco el control, que paso a resumir a continuación:
Resumen de propiedades:
Propiedad | Tipo de datos | Descripción |
AcceptEnterEscKeys | (Boolean) | Si True, permite que la tecla ENTER actúe como click en el botón Conectar, mientras que pulsar ESC actúa como click en Cancelar. |
AllowCreateConnections | (Boolean) | Activa / desactiva el botón 'Nueva conexión' de la barra de herramientas. |
AllowDeleteConnections | (Boolean) | Activa / desactiva el botón 'Eliminar conexión' de la barra de herramientas. |
AllowRenameConnections | (Boolean) | Activa / desactiva el botón 'Renombrar conexión' de la barra de herramientas. |
ConnectionIsolationLevel | (IsolationLevelEnum) | Permite definir el nivel de aislamiento del objeto Connection devuelto. |
ConnectionTimeut | (Long) | Indica el intervalo de espera mientras se establece una conexión antes de que finalice el intento y se genere un error. |
RegAppTitle | (String) | Nombre del nodo del registro de Windows dónde se almacenarán las conexiones para este proyecto. Se recomienda utilizar el mismo nombre de la aplicación (App.Title). |
ShowConStr | (Boolean) | Muestra / oculta el texto de la cadena de conexión. |
ShowLargeButtons | (Boolean) | Muestra / oculta los títulos en los botones de la barra de herramientas. |
Resumen de eventos:
Evento | Descripción |
Closed | Se ha pulsado el botón Cancelar |
Connected | Se ha conectado con éxito. Aparte del parámetro conexión, se informa del usuario y del password utilizados para hacer el login. |
Error | Se ha producido un error al intentar establecer la conexión. Devuelve un parámetro ErrObject para poder realizar un control de error estructurado. |
ConAdd | Se ha agregado una conexión a la lista de conexiones. Devuelve un parámetro con el nombre de la conexión. |
ConDelete | Se ha eliminado una conexión de la lista. |
ConRename | Se ha cambiado el nombre a una conexión. Devuelve dos parámetros, uno con el nombre antiguo y otro con el nuevo nombre. |
Requisitos:
Los requisitos para usar este control, únicamente se basan en que el propio componente hace uso de una serie de librerías ActiveX que son instaladas el el sistema con el propio entorno de desarrollo Microsoft Visual Basic ©, con lo cual todos los desarrolladores de VB no deberían tener ningún problema en el uso de este control.
Microsoft Windows Common Controls 6.0
Microsoft ActiveX Data Objects 2.x Library
Microsoft OLE DB Service Component 1.0 Type Library
Resumiendo:
Bueno, con esto se explican básicamente las funcionalidades de esta primera versión de uysLogin, espero que os sea de utilidad, o que os sirva como base para desarrollar aplicaciones similares, y si no... mal rayo os parta! (es broma)
Os dejo el código fuente por si a alguien le ilumina, en caso que os hagáis ricos por favor enviarme $5,00 (otra broma, aunque si alguien lo hace no me voy a quejar, je, je), lo que si os agradecería es (en caso que alguien lo utilice) es que si encuentra algún bug, gazapo, o fallo, me avise por e-mail, ya que así se podrá mejorar y volver a publicar para todos. Que pasarse la tarde delante del ordenador por amor al arte debe compensarse de vez en cuando, no? (Ahora te entiendo Guille).
Bye,
Lluís Franco Montanyés
Consultor
y desarrollador independiente
[email protected]
Fichero con el código fuente del control y de un formulario de prueba Test.vbg (uysLogin.zip - Tamaño 24.5 KB)