Club Delphi  
    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 29-07-2005
Avatar de yosmor
yosmor yosmor is offline
Registrado
 
Registrado: 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.

Última edición por yosmor fecha: 29-07-2005 a las 08:07:05. Razón: mejorando ortografía
Responder Con Cita
  #2  
Antiguo 29-07-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
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!
Responder Con Cita
  #3  
Antiguo 29-07-2005
Avatar de yosmor
yosmor yosmor is offline
Registrado
 
Registrado: jul 2005
Posts: 7
Poder: 0
yosmor Va por buen camino
Muchas gracias por la bienvenida y orientarme.

Microsoft Jet para Access

Saludos.

Última edición por yosmor fecha: 29-07-2005 a las 05:43:12.
Responder Con Cita
  #4  
Antiguo 29-07-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
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!
Responder Con Cita
  #5  
Antiguo 29-07-2005
Avatar de yosmor
yosmor yosmor is offline
Registrado
 
Registrado: jul 2005
Posts: 7
Poder: 0
yosmor Va por buen camino
Muchas gracias, me ayudaste bastante. Pero ahora tengo el siguiente problema

Código:
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.

Última edición por yosmor fecha: 29-07-2005 a las 08:05:00.
Responder Con Cita
  #6  
Antiguo 29-07-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
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.
Responder Con Cita
  #7  
Antiguo 29-07-2005
Avatar de dec
dec dec is offline
Moderador
 
Registrado: dic 2004
Ubicación: Alcobendas, Madrid, España
Posts: 13.107
Poder: 34
dec Tiene un aura espectaculardec Tiene un aura espectacular
Hola,

Cita:
Empezado por 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
Responder Con Cita
  #8  
Antiguo 29-07-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
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!
Responder Con Cita
  #9  
Antiguo 29-07-2005
Avatar de yosmor
yosmor yosmor is offline
Registrado
 
Registrado: jul 2005
Posts: 7
Poder: 0
yosmor Va por buen camino
Hola!
Gracias a todos!

Cita:
Empezado por 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

Código:
  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.

Código:
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.

Última edición por yosmor fecha: 29-07-2005 a las 14:38:19.
Responder Con Cita
  #10  
Antiguo 29-07-2005
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
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!
Responder Con Cita
  #11  
Antiguo 29-07-2005
Avatar de yosmor
yosmor yosmor is offline
Registrado
 
Registrado: jul 2005
Posts: 7
Poder: 0
yosmor Va por buen camino
Ayuda, por favor

Código:
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.

Última edición por yosmor fecha: 29-07-2005 a las 15:39:34.
Responder Con Cita
  #12  
Antiguo 29-07-2005
Avatar de yosmor
yosmor yosmor is offline
Registrado
 
Registrado: jul 2005
Posts: 7
Poder: 0
yosmor Va por buen camino
Cita:
Empezado por 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.
Responder Con Cita
  #13  
Antiguo 29-07-2005
Avatar de yosmor
yosmor yosmor is offline
Registrado
 
Registrado: 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.

Última edición por yosmor fecha: 29-07-2005 a las 22:55:45.
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 15:34:41.


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