Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Go Back   Foros Club Delphi > Principal > Conexión con bases de datos
Register FAQ Members List Calendar Guía de estilo Today's Posts

Conexión con bases de datos

Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old 29/07/2005
yosmor's Avatar
yosmor yosmor is offline
Registrado
 
Join Date: Jul 2005
Posts: 7
Poder: 0
yosmor Va por buen camino
Conexión o ruta relativa

Hola a todos!
Tengo la siguiente inquietud: para conectar una base con el control ADO, genero la cadena de conexión. Lo que deseo es no tener que establecerla en tiempo de diseño, sino que se establezca automáticamente en el mismo directorio donde corre mi aplicación, de esta forma sino encuentra la base pueda a través de código tratar la excepción.

Gracias,
Saludos.

Last edited by yosmor : 29/07/2005 at 08:07. Reason: mejorando ortografía
Reply With Quote
  #2  
Old 29/07/2005
vtdeleon's Avatar
vtdeleon vtdeleon is offline
Miembro
 
Join Date: Apr 2004
Location: RD & USA
Posts: 3,236
Poder: 26
vtdeleon Va por buen camino
Saludos
Bienvendido al ClubDelphi. Por favor lee la Guia de Estilo.

Con respecto a tu duda, Que motor de base de ddatos usa?
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Reply With Quote
  #3  
Old 29/07/2005
yosmor's Avatar
yosmor yosmor is offline
Registrado
 
Join Date: Jul 2005
Posts: 7
Poder: 0
yosmor Va por buen camino
Muchas gracias por la bienvenida y orientarme.

Microsoft Jet para Access

Saludos.

Last edited by yosmor : 29/07/2005 at 05:43.
Reply With Quote
  #4  
Old 29/07/2005
vtdeleon's Avatar
vtdeleon vtdeleon is offline
Miembro
 
Join Date: Apr 2004
Location: RD & USA
Posts: 3,236
Poder: 26
vtdeleon Va por buen camino
Saludos

1ro Debes tener una variable que contenga el directory de la aplicacion, ParamStr(0) devolvera la ruta mas el nombre del archivo (ej:c:\ruta\aplicacion.exe). Debes estraer solo el directorio con ExtractFilePath() y asignarlo a una variable.

En la prodiedad ConnectionString asignaras el proveedor que usaras y el directorio.
Código Delphi [-]
ADOConnection1.ConnectionString:=Provider=Microsoft.Jet.OLEDB.4.0;Data Source='C:\top\datos.mdb'
Como ver 1ro El proveedor, despues el directorio y archivo de la base de datos
Suerte
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Reply With Quote
  #5  
Old 29/07/2005
yosmor's Avatar
yosmor yosmor is offline
Registrado
 
Join Date: Jul 2005
Posts: 7
Poder: 0
yosmor Va por buen camino
Muchas gracias, me ayudaste bastante. Pero ahora tengo el siguiente problema

Code:
var
          ruta:String;
          begin
            ruta:=ExtractFilePath(ParamStr(0))+ 'base.mdb';
            ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+ ruta;
            ADOTable1.Active:=True;
          end;
Cuando le doy F9 me da error de conexión. Tengo mal la sintaxis

Disculpa si son muy evidentes mis errores pero es que estoy migrando a Delphi.

Gracias!,
Saludos.

Last edited by yosmor : 29/07/2005 at 08:05.
Reply With Quote
  #6  
Old 29/07/2005
Lepe's Avatar
[Lepe] Lepe is offline
Miembro Premium
 
Join Date: May 2003
Posts: 7,424
Poder: 31
Lepe Va por buen camino
ponte en la linea de código active := true, en el editor de código de delphi, pulsa la tecla F5 (Insertar un punto de ruptura, breakpoint), dale a F9 y ejecuta tu programa, se parará el programa en esa linea de código, ahora deja el ratón sobre ConnectionString (encima de esa palabra), te aparece una ventanita que evalua la expresion y te dice el valor que tiene.

Supongo que falta una barra invertida antes de base.mdb

Para seguir ejecutando el programa linea a linea, usa F7 y F8. Para continuar con la ejecución normal, vuelve a pulsar F9.

El depurador es una maravilla ehhh .

Un saludo
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Reply With Quote
  #7  
Old 29/07/2005
dec's Avatar
dec dec is offline
Moderador
 
Join Date: Dec 2004
Location: Alcobendas, Madrid, España
Posts: 13,142
Poder: 36
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Quote:
Originally Posted by Lepe
Supongo que falta una barra invertida antes de base.mdb.
La función "ExtractFilePath" se encargará de incluir la barra invertida Lepe. No así la función "ExtractFileDir".
__________________
David Esperalta
www.decsoftutils.com
Reply With Quote
  #8  
Old 29/07/2005
vtdeleon's Avatar
vtdeleon vtdeleon is offline
Miembro
 
Join Date: Apr 2004
Location: RD & USA
Posts: 3,236
Poder: 26
vtdeleon Va por buen camino
Saludos

yosmor, en la linea donde esta ParamStr(0) te da la ruta entera del ejecutable mas el nombre de la aplicacion, por tanto debes extraer solo la ruta, ej ExtractFilePath(ParamStr(0))
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Reply With Quote
  #9  
Old 29/07/2005
yosmor's Avatar
yosmor yosmor is offline
Registrado
 
Join Date: Jul 2005
Posts: 7
Poder: 0
yosmor Va por buen camino
Hola!
Gracias a todos!

Quote:
Originally Posted by vtdeleon
Saludos

yosmor, en la linea donde esta ParamStr(0) te da la ruta entera del ejecutable mas el nombre de la aplicacion, por tanto debes extraer solo la ruta, ej ExtractFilePath(ParamStr(0))
Ok, como puedes ver hice eso

Code:
  ruta:=ExtractFilePath(ParamStr(0))+ 'base.mdb';
       //Ejemplo:
       ShowMessage (ruta); // Lo que me devuelve: 'C:\base.mdb'
Creo que el problema esta aquí, porque me da error de conexión.

Code:
ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+ ruta;
Mi pregunta es: que está mal en esta línea

Saludos y nuevamente muchas gracias a todos.

Last edited by yosmor : 29/07/2005 at 14:38.
Reply With Quote
  #10  
Old 29/07/2005
vtdeleon's Avatar
vtdeleon vtdeleon is offline
Miembro
 
Join Date: Apr 2004
Location: RD & USA
Posts: 3,236
Poder: 26
vtdeleon Va por buen camino
Saludos

No estoy seguro, pero puede ser la version de Microsoft.Jet.OLEDB.4.0
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Reply With Quote
  #11  
Old 29/07/2005
yosmor's Avatar
yosmor yosmor is offline
Registrado
 
Join Date: Jul 2005
Posts: 7
Poder: 0
yosmor Va por buen camino
Ayuda, por favor

Code:
ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + '''' + 'C:\base.mdb' + '';
Estoy probando todas las maneras, depurando y evaluando ADOConnection1.ConnectionString, imaginaba que tuviera que ver con el uso de ( ' ) al pasarle la cadena.

Me sigue dando el mismo error de conexión y no encuentro la manera, pero seguiré probando.

Saludos.

Last edited by yosmor : 29/07/2005 at 15:39.
Reply With Quote
  #12  
Old 29/07/2005
yosmor's Avatar
yosmor yosmor is offline
Registrado
 
Join Date: Jul 2005
Posts: 7
Poder: 0
yosmor Va por buen camino
Quote:
Originally Posted by vtdeleon
Saludos

No estoy seguro, pero puede ser la version de Microsoft.Jet.OLEDB.4.0
Pero cuando la establezco por el inspector de objetos no me da problemas y se conecta bien.
Reply With Quote
  #13  
Old 29/07/2005
yosmor's Avatar
yosmor yosmor is offline
Registrado
 
Join Date: Jul 2005
Posts: 7
Poder: 0
yosmor Va por buen camino
Ya he resuelto.
Mi problema era que por accidente se me había quedado un control sin enlazar (ADOTable).

vtdeleon - Me ayudaste muchísimo.

Mil disculpas por la confución.

Gracias a todos!,

Saludos.

Last edited by yosmor : 29/07/2005 at 22:55.
Reply With Quote
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump


All times are GMT +2. The time now is 05:46.


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