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)
-   -   !!Conexión por dialogo a base de datos Access!! (https://www.clubdelphi.com/foros/showthread.php?t=72749)

Darkseratul 09-03-2011 22:59:40

!!Conexión por dialogo a base de datos Access!!
 
Hola camaradas del foro, tengo una consulta ya que es algo que estaría genial poner en mi aplicación conecto mi base de datos con un adoconnection y como ya saben se configura la ruta de la base da datos

El problema o duda es que pasa si mi aplicación pierde la ruta (mas bien que se mueva de esta) y pierda el enlace y como ya saben sale un error .\base.mdb no encontrada y la aplicación ya no sirve

la cuestión es que estuve pensado que tal si pongo un botón el cual me manda a un dialogo para buscar la base eso estaría muy bien

la verdad no si se pueda pero me gustaria poder hacerlo si alguien sabe como que me pase el tip no!!, se lo agradecería mucho hechenme una mano por favor :D:D:D

arturom 10-03-2011 09:34:19

Hola,
no explicas como tienes establecido el acceso a los datos, pero una opción es, a la hora de crear el formulario principal, leer un fichero tipo INI donde previamente hayas guardado la ruta de la base de datos.

Abres un fichero INI, lees la ruta de la base de datos y compruebas si Ruta es una cadena vacía. Si no está vacia se la asignas a tu conector y listo. Si está vacía le pides al usuario la ruta mediante un componente OpenFile y luego la guardas en el fichero INI para la próxima vez y cierras el fichero.

Código Delphi [-]
var
  Ruta: String;
  FicheroINI: TIniFiles;
begin
  // Creas un anlace al fichero "fichero.ini" que esta en el mismo directorio que el ejecutable de tu aplicación
  FicheroINI := TIniFile.Create( ExtractFilePath( ParamStr( 0 ) ) + 'fichero.ini' );
  Ruta := FicheroINI.ReadString('Conexion', 'Ruta', '');  // Lees la ruta
  if Ruta <> '' then
    Conexion.DatabaseName := Ruta  // Asignas la ruta al conector
  else
    if Abrirfichero.Execute then  // Pides la ruta del la base de datos con el Openfile
      FicheroINI.WriteString('Conexion', 'Ruta', Ruta);  // Guardas la ruta

  ficheroINI.Free;  // Liberas la memoria
end;

Saludos

fjcg02 10-03-2011 10:18:11

Hola,
si en la cadena de conexión quitas la ruta, y dejas sólo el nombre del fichero ( xx.mdb ) el ejecutable lo cogerá del mismo directorio en el que se encuentra.

Podría valerte para poder moverlo a cualquier instalación.

La opción del ini también es buena.

En el FTP tienes el ejemplo de facturación de Caral, en eql que puedes encontrar la descripción detallada del acceso al ini y montaje de la cadena de conexión. Creo que además hay un post en el que explica la aplicación paso a paso y se detalla el proceso. Busca por "programa de facturacion paso a paso" el novato Caral.

Saludos

Darkseratul 11-03-2011 18:28:38

Gracias
 
Gracias a arturom por la respuesta implemente lo del ini esta de perlas es un buen método para localisar bases de datos
gracias :):)

fjcg02 de hecho asi es como lo tengo con solo ./base.mdb pero deves en cuando el programa pierde la ruta y no la muevo ni nada todo esta en el mismo directorio pero igual se agradece tu respuesta gracias

estubo muy bien muchas gracias a los 2:D:D:D:D


La franja horaria es GMT +2. Ahora son las 13:31:33.

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