Usar vínculos de datos (UDL) con ADO y Delphi

Cuando editamos la propiedad ConnectionString de alguno de nuestros componentes ADO por lo general hacemos uso del siguiente cuadro de dialogo:

Data Link Properties

Este cuadro de diálogo pertenece a la interfaz conocida como Universal Data Link que proporciona MDAC  (Microsoft Data Access Components). Esta interfaz que nos resulta tan cómoda para crear nuestras cadenas de conexión mientras diseñamos nuestras aplicaciones con ADO está además disponible en lo que se conoce como Universal Data Link File.  Estos archivos UDL nos permiten crear un archivo de configuración de conexión que resulte amigable de editar. Esto además nos brinda como característica invaluable el poder establecer de manera dinámica la cadena de conexión en nuestras aplicaciones.

Vamos a ver un ejemplo de estos valiosos archivos UDL. Primero ejecutamos Notepad y después sin modificar el nuevo documento de texto vamos a guardar el archivo como Prueba.Udl y cerraremos Notepad.

*** Importante. Para poder guardar el archivo con una extensión UDL debes seleccionar en el cuadro de diálogo “guardar como” la opción “todos los archivos” de la lista tipo

Una vez que guardas el archivo, dale doble click y te aparecerá en ese momento el dialogo para establecer las propiedades del vínculo de datos. Sin modificar nada presionaremos el botón “Ok” para cerrar el cuadro de dialogo.  Y ahora abriremos el archivo Prueba.Udl con el bloc de notas. Encontrarás que ahora el archivo contiene lo siguiente:

UDL content

Como puedes ver han aparecido, como si fuera un archivo ini, la sección [oleDb] y la llave provider. Es precisamente en Provider donde se establecerá la cadena de conexión que configures en el cuadro de dialogo Datalink Properties.

Ok, todo parece interesante pero, ¿Como podemos aprovecharlo en Delphi?. Bueno, Delphi proporciona precisamente los métodos de acceso a esta interfaz que nos permitirán explotar sus características tal y como veremos a continuación:

Invocar el cuadro de dialogo DataLink Properties nos permite ofrecer al usuario una forma de establecer la cadena de conexión a usar por la aplicación de manera dinámica.  Para ello solo será necesario ejecutar el siguiente código:

procedure TForm1.Button1Click(Sender: TObject);
Var
 CadenaDeConexion: String;
begin
  CadenaDeConexion := PromptDataSource(self.Handle,'');
  If Length(CadenaDeConexion) > 0 Then
    ShowMessage('La cadena de conexión establecida es: ' + #13 + CadenaDeConexion);
end;

Crear un archivo UDL. Al crear un archivo UDL podremos almacenar la cadena de conexión generada  a través del cuadro de dialogo Data Link Properties.

procedure TForm1.Button2Click(Sender: TObject);
Var
 CadenaDeConexion: String;
 Provider: String;
 DatasourceName: String;
begin
  CadenaDeConexion := PromptDataSource(self.Handle,'');
  If Length(CadenaDeConexion) > 0 Then
    Begin
      Provider := MidStr(CadenaDeConexion,pos('=',CadenaDeConexion)+1,
                         pos(';',CadenaDeConexion)- (pos('=',CadenaDeConexion)+1)
                       );
      DatasourceName := MidStr(CadenaDeConexion,pos(';',CadenaDeConexion)+1,Length(CadenaDeConexion));
      CreateUDLFile('c:\proyectos\pruebas2.udl',Provider,DatasourceName);
    End;
end;

Conectar ADO usando un archivo UDL. Para conectarnos a nuestra base de datos usando el archivo UDL creado bastará con lo siguiente:

procedure TForm1.Button3Click(Sender: TObject);
begin
  ADOConnection1.ConnectionString :=  'FILE NAME=' + 'c:\proyectos\pruebas2.udl';
  ADOConnection1.Connected := true;
  ShowMessage('ADO Connection conectado');
end;

Usar archivos UDL nos proporciona una forma de almacenar la configuración de conexión al servidor de base de datos y además proporciona una interfaz amigable para la configuración de las cadenas de conexión.

El código fuente del programa lo puedes encontrar aquí: http://edgartec.com/wp-content/uploads/downloads/2013/02/AdoUdl.zip

UDLConfig

 

 

Sé el primero en comentar

Deja un comentario