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)
-   -   The path could no be found (no se encentra la ruta) (https://www.clubdelphi.com/foros/showthread.php?t=48282)

Lucas_diaz1810 20-09-2007 17:21:36

The path could no be found (no se encentra la ruta)
 
Hola a todos !

Tengo el siguiente problema:

He hecho una pequeña aplicacion en delphi 7 con base de datos acces, cuando cambio el ejecutable o base de datos de carpeta, me da el siguiente error, The path could no be found el problema es que tengo que moverla al disco D: de otra pc, he cambiado la ruta en el archivo udl que utilizo para la conexion.

Esperando su ayuda...

poliburro 20-09-2007 17:36:24

Es muy probable, que no estes indicando correctamente la ruta, deberias hacer la prueba de conexión una vez que has modificado de lugar el archivo.

Lucas_diaz1810 20-09-2007 17:46:35

Cita:

Empezado por poliburro (Mensaje 232545)
Es muy probable, que no estes indicando correctamente la ruta, deberias hacer la prueba de conexión una vez que has modificado de lugar el archivo.

Verifique, le hice un test al udl y esta bien

poliburro 20-09-2007 17:50:36

y como cargas el Udl en el AdoConnection?

waly2k1 20-09-2007 19:58:53

Rta.
 
En la conexion debes dejar la propiedad connected en false
luego en la aplicación lees de un ini o como sea la ubicación real de la BD sino cuando arranca busca la BD de tu disco local y no la encuentra, entonces te surgen errores.

Te copio a continuación una rutina que la invoco en el evento create de un datamodule, si no usas uno, al crear el form. Pero no te olvides de la propiedad Connected = false en el inspector de objetos y agregar IniFiles a las uses. Cambia el nombre de la DB de tu aplicación y password en caso que la utilices.

Código:

procedure TData.OpenConx();
Var
    sDBName:String;
    sServer:String;

    fIni:TIniFile;
    sFile:String;
    sAppFolder:String;
    i:Integer;
begin
    Conx.Close;
    sAppFolder := ExtractFilePath( Application.ExeName );
    ChDir( sAppFolder );
    sFile := sAppFolder + 'Config.ini';
    fIni := TIniFile.Create( sFile );

    while true do
    begin
        if Not FileExists( sFile ) then
        begin
            fIni.WriteString( 'DATABASE', 'Root', sAppFolder + 'Data\TSPoS.mdb' );
        end;

        sDataPath := fIni.ReadString( 'DATABASE', 'Root', sAppFolder + 'Data\TSPoS.mdb' );


        fIni.Free;
    // Cierro INI

        sConx := 'Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Jet OLEDB:Database Password=' + sPassword + ';Data Source=' + sDataPath;

        if Conx.Connected then Conx.Close;
        Conx.ConnectionString := sConx;
        Conx.Open;
        Conx.Connected := True;

        for i := 0 To Data.Conx.DataSetCount-1 do
        begin
//              ShowMessage( Conx.DataSets[i].Name ); // Por si tira error se cual es el que jode
              if Pos( 'TMP', UpperCase( Conx.DataSets[i].Name ) ) = 0 then // Si no es un tmp que lo abra, sino no, ya q las tmp las genero en ejecucion
              begin
                  Conx.DataSets[i].Active := true;
              end;
        end;
        exit;
    end;
end;


Saludos y espero soluciones tu problema.


La franja horaria es GMT +2. Ahora son las 19:41:46.

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