Este artículo muestra como abrir una base de datos Access usando ADO, el controlador ('driver') MSACCESS de la BDE, y ODBC

Abriendo una base de datos de Microsoft Access (.MDB)

Copyright © 2000 Ernesto De Spirito

InstallAWARE - MSI sin ciencia espacial

ADO

Si tiene Delphi 5 Enterprise o Delphi 5 Profesional con ADO Express, entonces puede usar una ADOTable y en la propiedad ConnectionString del control ADOConnection asociado puede usar el editor de propiedades para construir la cadena de conexión correcta. Por ejemplo:

Provider=Microsoft.Jet.OLEDB.4.0;
User ID=Admin;
Password=Password;
Data Source=D:\Path\dbname.mdb;
Mode=ReadWrite;
Extended Properties="";
Persist Security Info=False;
Jet OLEDB:System database="";
Jet OLEDB:Registry Path="";
Jet OLEDB:Database Password="";
Jet OLEDB:Engine Type=5;
Jet OLEDB:Database Locking Mode=1;
Jet OLEDB:Global Partial Bulk Ops=2;
Jet OLEDB:Global Bulk Transactions=1;
Jet OLEDB:New Database Password="";
Jet OLEDB:Create System Database=False;
Jet OLEDB:Encrypt Database=False;
Jet OLEDB:Don't Copy Locale on Compact=False;
Jet OLEDB:Compact Without Replica Repair=True;
Jet OLEDB:SFP=False

NOTA: Va todo junto en la misma línea.

Esta cadena de conexión abrirá la base de datos D:\Path\dbname.mdb usando el controlador ADO para bases de datos Access (Microsoft.Jet.OLEDB.4.0). El nombre de usuario sería Admin sin contraseña (los valores por omisión cuando se crea una base de datos Access). Si ha establecido una contraseña para su base de datos, deberá proveerla en la propiedad Jet OLEDB:Database Password. Si ha establecido seguridad, entonces debe indicar su archivo .MDW o .MDA de grupos de trabajo en la propiedad Jet OLEDB:System database.

BDE

Si como la mayoría de nosotros, usted no tiene ADO, puede usar la BDE que provee un controlador nativo (MSACCESS). En un componente Database, establezca las siguientes propiedades:

DatabaseName = cualquier_nombre (or nombre_de_alias)
DriverName   = MSACCESS
LoginPrompt  = False
Params       = PATH=d:\camino
               DATABASE NAME=d:\camino\nomarch.mdb
               TRACE MODE=0
               LANGDRIVER=Access General
               USER NAME=su_nombre_usuario
               PASSWORD=su_contraseña
               OPEN/MODE=READ/WRITE
               SQLPASSTHRU MODE=NOT SHARED

El valor de la propiedad DatabaseName de un objeto Database es el que debe usar en la propiedad DatabaseName de los componentes Table y Query que representen tablas y consultas en esa base de datos (esta es la forma de "vincularlos" al objeto Database).

BDE + ODBC

En el caso de bases de datos Access, la BDE provee un controlador nativo, pero hay muchos formatos de bases de datos para los cuales no hay un controlador BDE, aunque tal vez pueda encontrar un controlador ODBC. ODBC ofrece lo que yo llamaría "accesso de compatibilidad" (para aplicaciones con apenas mínimos requerimientos de acceso a base de datos, o aplicaciones que sólo necesitan realizar operaciones de importación/exportación), aunque algunas veces es todo lo que tenemos...

He aquí un ejemplo de cómo usar un controlador ODBC con la BDE para abrir una base de datos Access:

  • Cree un DSN (Data Source Name = Nombre de Origen de Datos) para su base de datos (usando la applet ODBC Data Sources del Panel de Control de Windows).

    1. Haga clic en la solapa "System DSN" o "User DSN"

    2. Haga clic en el botón "Add..." (Agregar)

    3. Seleccione el controlador "Microsoft Access Driver (*.mdb)" y presione ENTER. Aparecerá el diálogo "ODBC Microsoft Access Setup".

    4. Provea un nombre en el cuadro de texto "Data Source Name" (sin espacios ni caracteres especiales).

    5. Haga clic en el botón "Select..." (seleccionar) para especificar su base de datos .MDB.

    6. Si ha establecido un esquema de seguridad tiene que seleccionar el botón de radio "Database" en el cuadro "System Database" y hacer clic en el botón "System database..." para especificar su archivo de grupos de trabajo .MDW o .MDA.

    7. Haga clic en el botón "Advanced..." (avanzado) para establecer el nombre de usuario y la contraseña predeterminada. Esto es para acceso de baja seguridad porque cualquiera con acceso a su equipo puede ver las propiedades del DSN. Si necesita una seguridad más alta debe proveer el nombre de usuario y la contraseña al abrir la base de datos (vea más abajo).

    8. Finalmente haga clic en el botón "OK" para guardar su DSN.

  • En Delphi establezca las propiedades del componente TDatabase:

    1. Establezca DatabaseName con el nombre que le dio al DSN.

    2. Si desea que el usuario provea un nombre de login y una contraseña, entonces deje LoginPrompt en True.

    3. Si no le gusta el cuadro de diálogo de login estándar (o si quiere proveer el nombre y la contraseña por código), puede establecer LoginPrompt en False y usar su propio cuadro de diálogo (o tenga guardados el nombre de usuario y contraseña en su aplicación) y establezca la propiedad Params con los datos del login:

      USER NAME=su_nombre_de_usuario
      PASSWORD=su_contraseña
  • Asocie sus componentes TTable o TQuery con el componente TDatabase mencionado arriba simplemente proveyendo el mismo nombre de DSN en su propiedad DatabaseName correspondiende.

Boletín Pascal. Newsletter gratuito para programadores Delphi (y Kylix) con artículos, noticias, trucos, componentes y enlaces a nuevo contenido Delphi en la red.