Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Datenbankalias - Pfad der DBs muss dynamisch sein. (https://www.delphipraxis.net/15784-datenbankalias-pfad-der-dbs-muss-dynamisch-sein.html)

Memo 4. Feb 2004 19:39

Re: Datenbankalias - Pfad der DBs muss dynamisch sein.
 
Als ich das mit dem Zuweisen schrieb, schwebte mir eigentlich was anderes vor. So wie oben geht natürlich auch, aber es ist doch etwas umständlich. Mal noch einen anderen Vorschlag :
Delphi-Quellcode:
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, DB, DBTables, Grids, DBGrids,IniFiles,FileCtrl;

type
  TForm1 = class(TForm)
    DBGrid1: TDBGrid;
    Query1: TQuery;
    DataSource1: TDataSource;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;
const
  SELDIRHELP = 1000;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var i : Integer;
    inifile : TIniFile;
    dir : String;
begin
  try
    inifile := TInifile.Create(ChangeFileExt(ParamStr(0), '.ini'));
    if not inifile.SectionExists('Dir') then
    begin
       if SelectDirectory(dir, [sdAllowCreate, sdPerformCreate, sdPrompt],SELDIRHELP) then
          inifile.WriteString('Dir', 'Pfad' ,dir) ;
    end else
      dir :=inifile.ReadString('Dir', 'Pfad', 'ERROR');
      for i:=0 to Form1.ComponentCount-1 do
      begin
        if Form1.Components[i] is TQuery then
         begin
           TQuery(Components[i]).DatabaseName := dir;;
           TQuery(Components[i]).Open
         end;
      end;
  finally
    inifile.Free;
  end;
end;
Denn ob das Verbauen der Pfadangaben in eine Query immer so das Wahre ist? Zumindist halte ich es für unübersichtlich bis (bei vielen Querys) störend.

LuckyStrike4life 5. Feb 2004 07:46

Re: Datenbankalias - Pfad der DBs muss dynamisch sein.
 
Memo,
das ist sicher auch ne Lösung aber die ist ja noch wesendlich umfangreicher.

Es ist an sich auch nicht dir frage ob die Inifile bereits existiert, ich lasse sie einfach mit dem Setup Programm in den entsprechenden Ordner schreiben.
Denn ich kann es den 200 DAUs nicht zumuten, selber irgendwas einstellen zu müssen.

Allerdings
TQuery(Components[i]).DatabaseName := dir;;
TQuery(Components[i]).Open
ist wichtig, ich muss ja auch die Tabellen auf die Pfade weisen, in der Form werde ich das auch machen, allerdings ohne Schleife.

Sollte ich auf Probleme stoßen bei meinem Source, dann werde ich mich deinem widmen.

Memo 5. Feb 2004 09:39

Re: Datenbankalias - Pfad der DBs muss dynamisch sein.
 
Zitat:

Zitat von LuckyStrike4life
Sollte ich auf Probleme stoßen bei meinem Source, dann werde ich mich deinem widmen.

Danke. :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:51 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz