Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Conexion a DBF con ADO (https://www.clubdelphi.com/foros/showthread.php?t=56364)

totote 15-05-2008 14:05:49

Conexion a DBF con ADO
 
Buenas gente.
hoy quise conectarme a una tabla DBF con componentes ADO, realize los siguientes pasos que encontre por internet:

Código:

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

"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

Cita:

Empezado por poliburro (Mensaje 286892)
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

Cita:

Empezado por Neftali (Mensaje 286903)
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

dbase versus access
 
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.


La franja horaria es GMT +2. Ahora son las 12:00:28.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi