Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Cambiar la ruta de Access en Delphi (https://www.clubdelphi.com/foros/showthread.php?t=82647)

Ever_Martell 28-03-2013 05:03:57

Cambiar la ruta de Access en Delphi
 
Estoy haciendo un programa para mi salón, mi intención es en una base de datos cargar las tareas asignadas y con el programa ellos poder visualizarlas. Lo que insinúo hacer es que la base de datos yo la pueda estar actualizando mientras ellos tienen su programa instalado.

Esto haciéndolo que el programa descargue la base de datos al iniciar de un servidor, pero que la descargue hacía un archivo temporal en Windows, y el programa en delphi pueda saber que ahí se encuentra la base de datos.
Como he visto varios tutoriales, delphi te pide que elijas la dirección pero no sé cómo hacer que yo la elija manualmente.

Si me ayudarían estaría agradecido.

Casimiro Notevi 28-03-2013 11:36:57

Bienvenido a clubdelphi, ¿ya leiste nuestra guía de estilo?, gracias por tu colaboración :)

radenf 28-03-2013 22:57:16

Estimado Ever_Martell :

Si entendí bien lo que necesitas, con el siguiente código puedes definir la ubicación de tu base de datos de Access.

Código Delphi [-]
ADOConnection1.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source='
+ ExtractFilePath(Application.ExeName) + 'Tu carpeta\Tu BD.mdb;Persist Security Info=False';
ADOConnection1.Provider := 'Microsoft.Jet.OLEDB.4.0';

Ojalá te haya podido ayudar
Salu2

Ever_Martell 31-03-2013 06:08:19

Disculpa mi ignorancia, y ese código dónde lo tendría que poner. :(

radenf 31-03-2013 13:57:51

Cita:

Empezado por Ever_Martell (Mensaje 457879)
Disculpa mi ignorancia, y ese código dónde lo tendría que poner. :(

Yo lo coloco en el evento OnCreate del DataModulo. También puede ser en el mismo evento del Form principal.
Con ese código tu BD de Access se localiza en la carpeta que tu elijas en el directorio de tu ejecutable. Esto puedes cambiarlo a tu gusto.

Salu2

Ever_Martell 02-04-2013 07:49:39

Cita:

Empezado por radenf (Mensaje 457882)
Yo lo coloco en el evento OnCreate del DataModulo. También puede ser en el mismo evento del Form principal.
Con ese código tu BD de Access se localiza en la carpeta que tu elijas en el directorio de tu ejecutable. Esto puedes cambiarlo a tu gusto.

Salu2

Muchísimas gracias Radenf me ha ayudado grandemente.

Mi solución fue la siguiente.

Eliminando el componente antiguo de ADOConnection, agregué uno nuevo aplicando el siguiente código en un Botón.

Código Delphi [-]
ADOConnection1.Connected := false;
 ADOConnection1.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source='
+ GetTemp + 'Mydb.mdb;Persist Security Info=False;Jet OLEDB:Database Password=';
ADOConnection1.Provider := 'Microsoft.Jet.OLEDB.4.0';
ADOConnection1.Connected := true;

Le agregué Jet OLEDB: Database Password= y GetTemp

GetTemp Es la dirección de la carpeta temporal del usuario, para lograrlo usé este código, después de Implementation.

Código Delphi [-]
function GetTemp: String;
var
  tempDir: PChar;
  dwSDSice: DWORD;
begin
  dwSDSice := MAX_PATH + 1;
  GetMem(tempDir, dwSDSice);
  try
    if Windows.GetTempPath(dwSDSice, tempDir) <> 0 then
      Result := tempDir;
  finally
    FreeMem(tempDir);
  end;
end;

Jet OLEDB: Database Password= Porque mi base de datos usaba contraseña.

Y así fue como todo me resultó. Te lo agradezco mucho, saludos.

radenf 02-04-2013 12:27:50

Encantado de haber podido ayudarte.
Saludos


La franja horaria es GMT +2. Ahora son las 03:50:51.

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