PDA

Ver la Versión Completa : Conexion a DBF con ADO


totote
15-05-2008, 14:05:49
Buenas gente.
hoy quise conectarme a una tabla DBF con componentes ADO, realize los siguientes pasos que encontre por internet:


De la paleta de componentes ADO, utiliza el componente ADOConnection.
Cuando insertes este componente, da dobleclick sobre el y te saldra un
dialogo. Escoge la segunda opcion (Use Connection String), oprimes el
boton build y alli le das el Provider (Microsoft OLE DB Provider for ODBC
Drivers) que sale por defecto, en la siguiente paleta (Connection)
selecciona Use connection string, primes build y en dialogo que sale coges
la paleta Macine Data Source y seleccionas el dBASE Files, oprimes OK y te
saldra un nuevo dialogo para seleccionar el subdirectorio donde esta la
tabla .dbf con que quieres trabajar. Al oprimir el boton OK, regresa el
dialogo de la cadena de conexion. Aqui oprimes el boton Test Connection
para verificar la conexion, si termina exitosamente ya tienes creada la
conexion. Le das al boton OK y te saldra el primer dialogo, al que daras OK.

A partir de aqui insertas componentes ADOTable para cada tabla que
quieras utilizar, en la propiedad Connection le pones la conexion que acabas
de crear y a partir de aqui en la propiedad Table Name te permite
seleccionar una de las tablas .dbf que esta en el subdirectorio donde que
especificaste cuando creaste la conexion.
Espero puedas aclarar tus dudas con esta explicacion, si no es suficiente,
vuelve a preguntar para ver si puedo seguir ayudando.
La conexion funciona, pero cuando coloco un componente TADOTable enlazado con el TADOConnection y quiero traer los campos de la tabla me genera un error (http://img364.imageshack.us/img364/4025/erroroy2.jpg)

"La Tabla no tiene el formato esperado"

Alguien me puede dar una mano?

Saludos :D

poliburro
15-05-2008, 16:24:45
El componente TAdoconnection en su propiedad connectionString tiene lac adena de conexión, podrías copiarla y pegarla aquí por favor?

totote
15-05-2008, 16:34:46
Provider=MSDASQL.1;Persist Security Info=False;Data Source=dBASE Files;Extended Properties="DSN=dBASE Files;DefaultDir=D:\Conexion a Account\DB;DriverId=533;MaxBufferSize=2048;PageTimeout=5;"

poliburro
15-05-2008, 16:42:58
Prueba con esta:

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Conexion a Account\DB\;Extended Properties=DBASE III;

Neftali [Germán.Estévez]
15-05-2008, 17:13:25
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Conexion a Account\DB\;Extended Properties=DBASE III;

Añadiría a lo dicho, que segun la version de DBase puedes usar en la parte del final:
* ...
* Extended Properties=DBASE IV;
* Extended Properties=DBASE V;

Y Si necesitas usuario y contraseña, a esa cadena le añades:
* ...;User ID=Admin;Password=;

poliburro
16-05-2008, 02:02:01
Añadiría a lo dicho, que segun la version de DBase puedes usar en la parte del final:
* ...
* Extended Properties=DBASE IV;
* Extended Properties=DBASE V;

Y Si necesitas usuario y contraseña, a esa cadena le añades:
* ...;User ID=Admin;Password=;



Excelente añadidura amigo neftali, saludos

courtois
16-05-2008, 03:20:17
jet solo puede abrir determinados tipos de dfb, tambien puedes usar un oldb provider distinto como el de fox pro o advantage

totote
16-05-2008, 18:00:41
Bueno lo pude resolver, el problema venia porque la base de datos es de Visual Fox Pro, como no sabia como trabajaba, había copiado solamente los archivos dbf y cdx, lo que no sabía era que necesitava el resto de los archivos de la base de datos (.dbc y dct) XD jeje

Saludos.

pajaro128
01-06-2008, 18:51:08
hoola una consulta puedo migrar dbase3 a access2000 o access 97 ..gracias

Neftali [Germán.Estévez]
02-06-2008, 10:01:37
Si se trata de migrar los datos, desde el mismo Access puedes importarlos sin problemas.
En Delphi, yo te recomendaría eliminar BDE (que se usa para DBAse) y utilizar la paleta ADO (para Access); Funcionará mejor y te evitas depender del BDE.