AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi ExtractFilePath(ParamStr(0)) für 4 Datenmodule anwenden
Thema durchsuchen
Ansicht
Themen-Optionen

ExtractFilePath(ParamStr(0)) für 4 Datenmodule anwenden

Ein Thema von dlenz · begonnen am 5. Mär 2007 · letzter Beitrag vom 5. Mär 2007
Antwort Antwort
dlenz

Registriert seit: 17. Jan 2007
25 Beiträge
 
#1

ExtractFilePath(ParamStr(0)) für 4 Datenmodule anwenden

  Alt 5. Mär 2007, 11:12
Datenbank: TurboDB • Version: 5.10 • Zugriff über: TdbTable, Datasource
Hallo Liebe Delphi-Gemeinde!

Mein Programm arbeitet mit 4 Datenmodulen und 4 DB-Grids. Es funktioniert soweit auch alles. Das Ding ist jetzt, wenn man das Programm auf einem anderen PC ausführt, dann muss die Turbo-DB - .tdbd - Datei wie bei meinem PC im gleichen Pfad liegen (E:\db\...), das tut Sie aber meistens auf einem anderen System nicht.

Bei einem einzigen Datenmodul hatt ich das bisher so gemacht:
Code:
procedure TForm1.FormCreate(Sender: TObject, Anzahl): integer;
 var dbfrm: string;

begin
 dbfrm := ExtractFilePath(ParamStr(0))+'db/db.tdbd';

FormCreate.TdbTable1.Active := False;
 try
  FormCreate.TdbTable1.DatabaseName := dbfrm;
  FormCreate.TdbTable1.TableName := 'pr';
  FormCreate.TdbTable1.Active := True;
 except
  MessageBeep(0);
  ShowMessage('Die Tabelle db.tdbd befindet' + #10#13 +'sich nicht im angegebenen Verzeichnis!')

 end

end;
jetzt ist mein Problem, dass ich ja 4 Datenmodule benutze. Jetzt hatte ich mir das mit meinem Freund, der FOR-Schleife, zu lösen und zwar ungefähr so:

Code:
procedure TForm1.FormCreate(Sender: TObject, Anzahl): integer;
 var dbfrm: string;
 var Anzahl: integer;
 var i: integer;
begin
 Anzahl:=4;

 for i:=1 to Anzahl do

 dbfrm := ExtractFilePath(ParamStr(0))+'db/db.tdbd';

FormCreate.TdbTable1.Active := False;
 try
  FormCreate.TdbTable1.DatabaseName := dbfrm;
  FormCreate.TdbTable1.TableName := 'pr';
  FormCreate.TdbTable1.Active := True;
 except
  MessageBeep(0);
  ShowMessage('Die Tabelle db.tdbd befindet' + #10#13 +'sich nicht im angegebenen Verzeichnis!')
 end

end;
jetzt sehe ich aber den Wald vor lauter Bäumen nicht mehr. Kann mir jemand helfen biddö... dangge.
  Mit Zitat antworten Zitat
Benutzerbild von sh17
sh17

Registriert seit: 26. Okt 2005
Ort: Radebeul
1.663 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: ExtractFilePath(ParamStr(0)) für 4 Datenmodule anwenden

  Alt 5. Mär 2007, 11:18
also
Delphi-Quellcode:
for i:=1 to Anzahl do

dbfrm := ExtractFilePath(ParamStr(0))+'db/db.tdbd';
erzeugt 4 mal den gleichen Namen.

Wo liegt denn Deine Datenbank nun?
Sven Harazim
--
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: ExtractFilePath(ParamStr(0)) für 4 Datenmodule anwenden

  Alt 5. Mär 2007, 11:20
Zitat:
dbfrm := ...
kannst du außerhalb der Schleife zuweisen.
Deine Schleife macht ja viermal das Selbe ( selbes Modul)

Ich würde das nicht in Form1 sondern in den jeweiligen Datenmodulen lösen.
Markus Kinzler
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: ExtractFilePath(ParamStr(0)) für 4 Datenmodule anwenden

  Alt 5. Mär 2007, 11:27
Hallo,

ich fürchte, dass da eine Begriffsverwirrung vorliegt. Vermutlich gibt es ein Datenmodul und vier Forms auf denen DBGrids liegen. Zumindest wäre das ein vernünftiger Ansatz. Der Pfad zur Turbo-Datenbank wird dann nur im Initialisierungscode des Datenmoduls bestimmt. Dort liegen auch die DataSet-Komponenten. Auf den Forms liegen nur die DataSource-Komponenten und die interessiert der Pfad nicht.

Grüße vom marabu
  Mit Zitat antworten Zitat
dlenz

Registriert seit: 17. Jan 2007
25 Beiträge
 
#5

Re: ExtractFilePath(ParamStr(0)) für 4 Datenmodule anwenden

  Alt 5. Mär 2007, 11:49
Zitat von mkinzler:
Zitat:
dbfrm := ...
kannst du außerhalb der Schleife zuweisen.
Deine Schleife macht ja viermal das Selbe ( selbes Modul)

Ich würde das nicht in Form1 sondern in den jeweiligen Datenmodulen lösen.
also auch einfach in der FormCreate-Prozedur für jedes Datenmodul dann?
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: ExtractFilePath(ParamStr(0)) für 4 Datenmodule anwenden

  Alt 5. Mär 2007, 11:52
Ja, im .DataModuleCreate.
Markus Kinzler
  Mit Zitat antworten Zitat
dlenz

Registriert seit: 17. Jan 2007
25 Beiträge
 
#7

Re: ExtractFilePath(ParamStr(0)) für 4 Datenmodule anwenden

  Alt 5. Mär 2007, 11:57
Zitat von mkinzler:
Ja, im .DataModuleCreate.
ahhhhhaaaa... okay... dann weiß ich jetzt wo ich dran muss dangge
  Mit Zitat antworten Zitat
dlenz

Registriert seit: 17. Jan 2007
25 Beiträge
 
#8

Re: ExtractFilePath(ParamStr(0)) für 4 Datenmodule anwenden

  Alt 5. Mär 2007, 12:15
so, jetzt habe ich das wie folgt im 1. Datenmodul angewendet:
Delphi-Quellcode:
unit u_dm1;

interface

uses
  SysUtils, Classes, DB, TdbQuery, TdbDataSet, TdbLicense;

type
  TDataModule1 = class(TDataModule)
    TdbTable1: TTdbTable;
    DataSource1: TDataSource;
    procedure DataModuleCreate(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  DataModule1: TDataModule1;
  TdbTable1: TTdbTable;
  
implementation

{$R *.dfm}

procedure TDataModule1.DataModuleCreate(Sender: TObject);
 var dbfrm: string;
begin
 dbfrm := ExtractFilePath(ParamStr(0))+'db/db.tdbd';
 self.TdbTable1.Active := False;
 self.TdbTable1.DatabaseName := dbfrm;
 self.TdbTable1.TableName := 'pr';
 self.TdbTable1.Active := True;
 end;
end.
Compiliert auch ohne Fehler, nur die Daten werden im DB-Grid nicht angeziegt
Hab ich noch was fundamentales vergessen?
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:08 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz