Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Tablas planas
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-01-2009
Avatar de yusnerqui
yusnerqui yusnerqui is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuba
Posts: 679
Poder: 21
yusnerqui Va por buen camino
Importar tablas Dbf a base de datos Access desde delphi

Saludos amigos del foro, primero que nada agradecerles por leer mi post y ofrecer disculpas por mi prolongada ausencia, no me voy a justificar, ni explicaré causas que, si bien influyen, no determinan, solo ofrezco mis disculpas

El problema que me trae es el siguiente: estoy implementando una herramienta cuyo fin es auditar un sistema contable, este sistema está hecho en foxpro con sus correspondientes tablas dbf.

Lo primero que necesito para que mi sistema trabaje es importar las tablas dbf a una base de datos de Microsoft Access para con esa copia importada realizar la auditoría. Y es precisamente esto lo que no he logrado hacer desde delphi.

Hasta el momento lo que he resuelto es hacer el proceso desde el propio Access, creando un módulo que haga uso de la métodoTransferDatabase del objeto DoCmd y luego ejecutándolo desde delphi, esto tiene los inconvenientes siguientes:
1- Tiene que estar access instalado
2- El efecto visual es muy desagradable, pues literalmente te abre el access para ejecutar el modulo.

Lo que necesito es poder hacer la importación desde el propio delphi o que el proceso de ejecutar el módulo no sea tan "molesto" para el usuario.

Reiterando mi agradecimiento por leer el post los saluda

Yusnerqui Valdivia
__________________
Lo importante no es llegar primero, sino saber llegar.

Para que puedas llegar mejor lee la Guia de Estilo


Última edición por yusnerqui fecha: 26-01-2009 a las 23:29:01. Razón: errores ortográficos :(
Responder Con Cita
  #2  
Antiguo 26-01-2009
Avatar de droguerman
droguerman droguerman is offline
Miembro
 
Registrado: abr 2005
Ubicación: tierra
Posts: 999
Poder: 20
droguerman Va por buen camino
Puedes optar por usar componentes BDE y luego cada registro leido del dataset escribirlo a un dataset de access tipo ADO (con un bucle por ejemplo) o leer directamente los dbf con algún componente, yo he utilizado este con muy buenos resultados
__________________
self.free;
Responder Con Cita
  #3  
Antiguo 26-01-2009
Avatar de yusnerqui
yusnerqui yusnerqui is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuba
Posts: 679
Poder: 21
yusnerqui Va por buen camino
Muchas gracias por responder, siertamentes es una solución y probablemente la mejor que tengamos a mano, de lo que desconfío un poco es del tiempo que empleará la aplicación en tranferir cíclicamene tooodos los datos de toooodas las tablas del mencionado sistema, pues suele ser bastante grande el número de registros a importar y son un total de 33 tablas diferenes.

De todos modos probaré tu propuesta y luego les cuento, pretendo usar los componentes kadaos que he probado con muy buenos resultados en la manipulación de bases de datos access y parecen tener bunas potencialidades en el manejo de dbf.

De todos modos si alguien tiene otra posible solución a este problema, el hilo queda abierto a su criterio.


Muchas gracias al amigo droguerman y a todo el que ha leido este post
__________________
Lo importante no es llegar primero, sino saber llegar.

Para que puedas llegar mejor lee la Guia de Estilo

Responder Con Cita
  #4  
Antiguo 27-01-2009
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.267
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Otra opción (similar a la que te han comentado) es saltarte el BDE y hacer ambas conexiones utilizando ADO, ya que mediante ADO también puedes configurar una conexión para tablas DBF.

Código:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\folder;Extended Properties=dBASE IV;User ID=Admin;Password=;
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #5  
Antiguo 30-01-2009
Avatar de yusnerqui
yusnerqui yusnerqui is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuba
Posts: 679
Poder: 21
yusnerqui Va por buen camino
Bueno pues lo dicho, muchas muchas gracias, aún no he podido implementar nada pero ya tengo al menos el camino a seguir, desde que tenga un poquitin de tiempo me pongo manos a la obra.

Saludos Yusnerqui
__________________
Lo importante no es llegar primero, sino saber llegar.

Para que puedas llegar mejor lee la Guia de Estilo

Responder Con Cita
  #6  
Antiguo 23-02-2009
Avatar de yusnerqui
yusnerqui yusnerqui is offline
Miembro
 
Registrado: mar 2004
Ubicación: Cuba
Posts: 679
Poder: 21
yusnerqui Va por buen camino
Hola muchachos revivo este hilo porque ya tengo el proceso de importación prácticamente terminado de la forma que me sugirireron, excepto que en vés de usar:

Código Delphi [-]
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\folder;Extended Properties=dBASE IV;User ID=Admin;Password=;
porque no me funcionaba usé:

Código Delphi [-]
'Provider=MSDASQL.1;Persist Security Info=False;Data Source=dBASE '+
'Files;Initial Catalog=c:\folder';
Esto me permite abrir los dbf de fox en cualquier máquina sin problemas con un simple select * from tabla

El problema ahora es que necesito en algunas de esas tablas solo importa los registros correspondientes a un rango de fecha, y no me deja poner el criterio o lo que es lo mismo no me lo acepta

Código Delphi [-]
var
FechaIni,FechaTer:TDate;
begin
FechaIni:= //una fecha guardada en una tabla de configuaracion
FechaTer:=//otra fecha guardada en la tabla de configuaracion
ADOConnection1.Close;
         ADOConnection1.ConnectionString:=
          'Provider=MSDASQL.1;Persist Security Info=False;Data Source=dBASE '+
          'Files;Initial Catalog=c:\folder';
         ADOConnection1.Open;
         //abro el dbf
         DBF.Close;
         DBF.SQL.Text := 'select * from '+Tabla;
         if Auxi.fieldbyname('fecha').AsString='' then
         begin
           DBF.SQL.Text := format('%s where %s >= :F1 and %1:s <= :F2',
                       [DBF.SQL.Text,'CampoFecha']);
           DBF.Parameters[0].Value:=fechaini;
           DBF.Parameters[1].Value:=fechater;
         end;
         DBF.Open;

esto no me da error pero no me debuelve ningun registro
Tampoco me ha funcionado pasarlo directo en la consulta, tampoco encerrandolo entre yabes {} no se realmente que hacer.

Lo que me queda pensar es que usando este modo de conección no puedo hacer otra cosa que leer toda la tabla.

Agradesco cualquier comentario al respecto que me ayude.

Saludos y gracias por leer este hilo
__________________
Lo importante no es llegar primero, sino saber llegar.

Para que puedas llegar mejor lee la Guia de Estilo

Responder Con Cita
  #7  
Antiguo 25-08-2010
pgraciap pgraciap is offline
Miembro
 
Registrado: may 2003
Ubicación: Tampico, Tamaulipas [Mexico]
Posts: 39
Poder: 0
pgraciap Va por buen camino
Lightbulb

Que tal compañero yusnerqui, yo tambien he tenido ese problema con las fechas y es que al revisar las fechas me encuentro que no es la fecha que supuestamente se escribe mas bien me da algo parecido a :"25/'08/2009 13:34:45PM" y en realidad lo que busco es "25/08/2009" y lo que se me ocurrio es poner la variable a modo txt y que solo pasaran los datos de las fechas no mas y asi me funciono bien, no se si has tratado de checarlo asi???? espero te funcione....

Saludos...
__________________
Have a nice day :)
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Compactar Base d Datos Access desde Delphi. Drakyto Conexión con bases de datos 6 22-02-2010 22:23:29
Compactar Base d Datos Access desde Delphi. Drakyto Conexión con bases de datos 3 19-02-2008 02:57:07
Importar base de datos en access MDB a Firebird GDB automaticamente JuanErasmo Firebird e Interbase 2 24-11-2006 23:38:11
Importar datos a access desde un archivo delimitado por comas luis juarez Conexión con bases de datos 1 10-05-2006 22:46:13


La franja horaria es GMT +2. Ahora son las 08:26:20.


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
Copyright 1996-2007 Club Delphi