Club Delphi  
    Paypal   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 Buscar Temas de Hoy Marcar Foros Como Leídos

Conexión con bases de datos

 
 
Herramientas Buscar en Tema Desplegado
  #5  
Antiguo 20-09-2007
waly2k1 waly2k1 is offline
Miembro
 
Registrado: dic 2006
Ubicación: El país de las maravillas(Argentina)
Posts: 251
Poder: 20
waly2k1 Va por buen camino
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.
Responder Con Cita
 


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Error: Firebird Client library not found in the path. Tauro78 Firebird e Interbase 1 14-02-2007 16:13:47
cxstyles not found Maxsteel73 Varios 1 26-07-2006 08:15:53
TIB_Script not found marceloalegre Varios 1 01-08-2005 18:47:04
503 recipient no found Nbull Internet 3 17-11-2004 18:04:49
blob not found wonder boy Conexión con bases de datos 3 27-03-2004 16:03:12


La franja horaria es GMT +2. Ahora son las 23:05:14.


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