Autor Beitrag
Metalbenny
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Sa 12.04.08 08:10 
Hi,
ich habe ein Problem mit meiner ADO-Connection. Es ist zwar problemlos möglich, mit ihr zu arbeiten, solange ich den Ordner nicht ändere. Kopiere ich das Projekt aber in einen anderen Ordner und versuche ich es dort weiterzubearbeiten, muss ich jedes Mal den aktuellen Ordner vor dem Compilieren manuell beim Connectionstring einstellen.
Nun zu meiner Frage:
Gibt es eine Delphi-Funktion, die ein automatisches ändern des Dateipfades bei ADOConnections ermöglicht?
Und wenn nicht, könnt ihr mir sagen, wie ich den aktuellen Dateipfad meines Projektes auf eine String-Variable bekomme?
Danke schonmal im Voraus!
mfG Benny
Bernhard Geyer
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 721
Erhaltene Danke: 3



BeitragVerfasst: Sa 12.04.08 08:33 
Mit

ausblenden Delphi-Quelltext
1:
  strPfad := ExtractFilePath(Application.ExeName)					


bekommst du den Pfad der Exe.

und mit

ausblenden Delphi-Quelltext
1:
  ADODatabase.Connection := Format('Angepaßter Connectionstring mit PLatzhalter', [strPfad + '\Datenbankdateiname']);					


kannst du die Connection anpassen.
Vergiss aber nicht das wenn dein Programm unter C:\Programme installiert ist der User u.U. keine Schreibrechte in diesen Verzeichnissen hat.

Moderiert von user profile iconKlabautermann: Delphi-Tags hinzugefügt.
SmileySN
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 297

WinXP, Win7
Delphi 2010 Professional
BeitragVerfasst: Sa 12.04.08 08:36 
Ja, das ist machbar.
1. Du darfst den Pfad zur Datenbank nicht im Objektinspector setzen und dort auch nicht die Connection auf Active=True setzen.
2. Wenn die Datenbank im Programmpfad liegt, dann kannst Du diesen Pfad mit ExtractFilePath(Application.exename) herausfinden.
3. du musst den Connectionstring selbst im Programm zusammensetzen und der Connection zuweisen.
z.B. so:
DM ist mein DataModule, Con1 ist die Connection Komponente,QKat ist eine Query.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
  DM.Con1.Connected := False;
  DBName := 'Adressenkartei.mdb';

  // Connection String zusammensetzen
  ConnString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + DBName +
    ';Mode=share deny none;Persist Security Info=False'//';Jet OLEDB:Engine Type=4;';

  with DM.Con1 do
    begin
      try
        ConnectionString := ConnString;

        LoginPrompt := False;
        Connected := True; // ADO Connection aktivieren
        DM.QKat.Active := True; //Query aktivieren
      except
        ShowMessage('Die Datenbank ist nicht vorhanden');
        Halt;
      end;
Metalbenny Threadstarter
Hält's aus hier
Beiträge: 6



BeitragVerfasst: Sa 12.04.08 10:46 
jo vielen Dank für die Antworten, jetz müsst ichs ja hinkriegen.^^