Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 21-02-2011
darkone2k4 darkone2k4 is offline
Miembro
 
Registrado: abr 2008
Posts: 89
Poder: 19
darkone2k4 Va por buen camino
ADO y DBF

Salu2 amigos.

Estoy desarrollando un programa que tiene que obtener datos de unos archivos DBF e insertarlos en un archivo MDB.
Pero tengo problemas para conectarme con los DBF, ya que éstos están en varias carpetas, por ejemplo:
  • C:\Sistema\DBF Datos principales del sistema.
  • C:\Sistema\DBF01 Datos de la empresa 1.
  • C:\Sistema\DBF02 Datos de la empresa 2.
Tengo un ADOConnection que usa un DNS de sistema para conectarse a la carpeta principal, pero después no puedo conectar a las otras carpetas ya que me aparece el siguiente error:

Error no esperado desde el controlador de la base de datos externa (12294)

Intenté usando otro ADOConecction junto a otra query, pero no hay caso.

Ojalá y puedan ayudarme.

SAlu2.

Responder Con Cita
  #2  
Antiguo 21-02-2011
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: 19.441
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
Sólo para descartar problemas.
¿Has probado en diseño a conectarte el la Tabla DBF que te da problemas?
¿El error es sólo en ejecución?

Otra opción es que utilices ADO directamente para conectarte a las tablas DBF a ver si el problema es debido al método de conexión.
__________________
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
  #3  
Antiguo 21-02-2011
darkone2k4 darkone2k4 is offline
Miembro
 
Registrado: abr 2008
Posts: 89
Poder: 19
darkone2k4 Va por buen camino
gracias por la respuesta Neftali.

Te explico un poco lo que tengo en mi formulario.

1.- Tengo un ADOConnection + un ADOQuery para obtener el nombre y código de la empresa, tomando los datos que están en c:\sistema\dbf, que es donde están los datos generales del sistema. Esos datos son enviados a un ComboBox.
2.- Tengo otro ADOCOnnection y otro ADOQuery para obtener los datos específicos de la empresa seleccionada, que puede ser c:\sistema\dbf01 o c:\sistema\dbf02 de acuerdo a un rango de fechas, por lo que tengo un botón de búsqueda para dicha información.

Lo primero que se debe hacer en la aplicación, es seleccionar la empresa del combobox para que me de la ruta desde donde obtener la información específica y luego ingresar el rango de fecha para buscar. Entonces modifico en tiempo de ejecución el connectionstring del segundo ADOConnection para que la búsqueda se realice en la carpeta correspondiente.

Entonces el problema se presenta cuando se realiza la búsqueda de información de acuerdo al rango de fecha.

En tiempo de diseño no se presenta ningún problema.
Voy a probar con la información que aparece en el link que me diste.

gracias por tu respuesta.
Responder Con Cita
  #4  
Antiguo 21-02-2011
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: 19.441
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
Cita:
Empezado por darkone2k4 Ver Mensaje
...Entonces modifico en tiempo de ejecución el connectionstring del segundo ADOConnection para que la búsqueda se realice en la carpeta correspondiente.

Entonces el problema se presenta cuando se realiza la búsqueda de información de acuerdo al rango de fecha.

En tiempo de diseño no se presenta ningún problema.
Asegúrate de que la cadena de conexión y la SQL son correctas.
No debería haber diferencia entre activarla en diseño y en ejecución. Ejecuta el programa pasa a paso y confirma que los valores de la cadena de conexión son correctos. Haz una prueba en diseño con esa misma cadena de conexión.
__________________
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 21-02-2011
darkone2k4 darkone2k4 is offline
Miembro
 
Registrado: abr 2008
Posts: 89
Poder: 19
darkone2k4 Va por buen camino
gracias nuevamente.

El primer ADOCOnnection, lo tengo así:
Código Delphi [-]
'Provider=MSDASQL.1;Persist Security Info=False;Extended Properties="DSN=gestion_comercial;DBQ=C:\sistema\DBF;DefaultDir=C:\sistema\DBF;DriverId=533;FIL=dBas  e 5.0;MaxBufferSize=2048;PageTimeout=5;"';

Y funciona bien la conexión.
El segundo ADOConnection, lo tengo así( de acuerdo a la página que me diste):

Código Delphi [-]
'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + Ruta + ';Extended Properties=dBASE IV;User ID=Admin;Password=;';
Donde ruta, es la variable que me da la ubicación de las tablas a usar.

No quiero depender de un DSN, y cambié la connectionstring del primer ado para usarla como aparece en la página que me diste, y me aparece el mismo error.

salu2.

Responder Con Cita
  #6  
Antiguo 21-02-2011
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: 19.441
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
Cita:
Empezado por darkone2k4 Ver Mensaje
El segundo ADOConnection, lo tengo así( de acuerdo a la página que me diste):

Donde ruta, es la variable que me da la ubicación de las tablas a usar.

Prueba esa segunda opción poniendo en diseño la ruta correcta donde tienes las tablas y comprueba si funcionba, para descartar que sea un error en ejecución.
__________________
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
  #7  
Antiguo 21-02-2011
darkone2k4 darkone2k4 is offline
Miembro
 
Registrado: abr 2008
Posts: 89
Poder: 19
darkone2k4 Va por buen camino
Cita:
Empezado por Neftali Ver Mensaje
Prueba esa segunda opción poniendo en diseño la ruta correcta donde tienes las tablas y comprueba si funcionba, para descartar que sea un error en ejecución.
ingreso eso en el connectionstring, le doy a active: true y se conecta bien, pero me lo cambia a:
Código Delphi [-]
'Provider=Microsoft.Jet.OLEDB.4.0;Password="";User ID=Admin;Data Source=c:\sistema\dbf;Mode=Share Deny None;Extended Properties=dBASE IV;'+
'Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDBatabase Password="";Jet OLEDB:Engine Type=17;Jet OLEDBatabase Locking Mode=0;'+
'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 OLEDBon't Copy Locale on Compact=False;'+
'Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False'
Luego al query lo asocio al ado, le doy active = true y me da el mismo error.
Todo esto, en tiempo de diseño.



Responder Con Cita
  #8  
Antiguo 21-02-2011
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: 19.441
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
Cita:
Empezado por darkone2k4 Ver Mensaje

(1)...ingreso eso en el connectionstring, le doy a active: true y se conecta bien, pero me lo cambia a

(2)Luego al query lo asocio al ado, le doy active = true y me da el mismo error.
Bueno, es normal que lo cambie, añade determinados parámetros, lo importante es que conecta bien (1).
Al asociar el Query (2) dices que falla.

Quedaría saber qué consulta tienes en el Query.
__________________
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
  #9  
Antiguo 21-02-2011
darkone2k4 darkone2k4 is offline
Miembro
 
Registrado: abr 2008
Posts: 89
Poder: 19
darkone2k4 Va por buen camino
En el query solo tengo:

Código SQL [-]
select * from empresa

Donde empresa es el archivo empresa.dbf, el cual existe.
Responder Con Cita
  #10  
Antiguo 22-02-2011
darkone2k4 darkone2k4 is offline
Miembro
 
Registrado: abr 2008
Posts: 89
Poder: 19
darkone2k4 Va por buen camino
Ya lo solucioné.

Dejaré la solución por si alguien más tiene el mismo problema.

El problema se debía a la cadena de conexión que estaba usando, que era:
Código Delphi [-]
'Provider=MSDASQL.1;Persist Security Info=False;Extended Properties="DSN=gestion_comercial;DBQ=C:\sistema\DBF;DefaultDir=C:\sistema\DBF;DriverId=533;FIL=dBas  e 5.0;MaxBufferSize=2048;PageTimeout=5;"';
No me permitía cambiar en tiempo de ejecución ni el DSN ni la ruta, por lo que utilicé esta cadena de conexión:
Código Delphi [-]
'Provider=VFPOLEDB.1;Data Source=' + Ruta + ';Password="";Collating Sequence=MACHINE';
Para usar esta nueva cadena de conexión, tuve que descargar el VFPOLEDB desde la página de MS.

Así que ahora puedo cambiar sin problemas las rutas de búsqueda de datos y no dependo de los DSN.

Muchas gracias Neftalí por la ayuda.

Salu2.
Responder Con Cita
  #11  
Antiguo 13-06-2011
waly2k1 waly2k1 is offline
Miembro
 
Registrado: dic 2006
Ubicación: El país de las maravillas(Argentina)
Posts: 251
Poder: 20
waly2k1 Va por buen camino
Conx a VF

Hola flaco, pasame por favor un ej. de conx, solo la cadena de conx
que estoy en lo mismo y no logro conectarme, la conx me dice que está bien
pero a la query no la puedo activar, ya me habia bajado el oledb actualizado de MS, pero nada aun.
Saludos y muchas gracias!!!

Edito: El error que me da es que no encuentra la base de datos "datos.dbc" y Datos es la carpeta donde están las DBF/CDX
y no una BD, se entiende?

Nuevamente gracias!

Última edición por waly2k1 fecha: 13-06-2011 a las 09:39:42. Razón: agregado....
Responder Con Cita
Respuesta



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


La franja horaria es GMT +2. Ahora son las 00:49:40.


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