|
Abriendo una base de datos de Microsoft Access (.MDB)
Copyright © 2000 Ernesto
De Spirito
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).
Haga clic en la solapa "System DSN" o "User DSN"
Haga clic en el botón "Add..." (Agregar)
Seleccione el controlador "Microsoft Access Driver (*.mdb)" y
presione ENTER. Aparecerá el diálogo "ODBC Microsoft Access Setup".
Provea un nombre en el cuadro de texto "Data Source Name" (sin
espacios ni caracteres especiales).
Haga clic en el botón "Select..." (seleccionar) para especificar su
base de datos .MDB.
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.
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).
Finalmente haga clic en el botón "OK" para guardar su DSN.
En Delphi establezca las propiedades del componente TDatabase:
Establezca DatabaseName con el nombre que le dio al DSN.
Si desea que el usuario provea un nombre de login y una contraseña,
entonces deje LoginPrompt en True.
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.
|