![]() |
Re: DB-Programm auf anderem PC ausführbar machen...
okay... das Problem ist gelöst:
Delphi-Quellcode:
aber nun möchte ich die daten aus der DB-Tabelle über ein TdbQuery in einen Report übernehmen und er sagt mir immer, dass er keine tabelle.dat findet, warum das nu wieder?
procedure Tfrm_main.FormCreate(Sender: TObject);
var verz: string; begin verz := ExtractFilePath(ParamStr(0))+'db/'; TdbTable1.Active := False; try TdbTable1.DatabaseName := verz + 'db.tdbd'; TdbTable1.Active := True; except MessageBeep(0); ShowMessage('Die Tabelle db.tdbd befindet' + #10#13 +'sich nicht im angegebenen Verzeichnis!') end end; end. |
Re: DB-Programm auf anderem PC ausführbar machen...
TdbQuery kann unabhängig von TdbTable verwendet werden.
Normalerweise gehts so:
Delphi-Quellcode:
EDIT: hab mal die Query angepasst, die Tabelle hatten den gleichen Namen wie die Datenbank.
Query := TTdbQuery.Create(nil);
Query.DatabaseName := path+'BLZCODES.TDBD'; try Query.SQLW := 'SELECT * FROM BLZCODESTABLE WHERE BLZ = '''+_BLZ+''''; Query.Open; Result := Query; except on E:Exception do ... end; |
Re: DB-Programm auf anderem PC ausführbar machen...
Guten Morgen,
Backslash heißt der nach links gekippte Schrägstrich und der wird im Windows Dateisystem verwendet. Aus bestimmten Gründen (z.B. Portabilität) schreibt man ihn nur selten selbst und verwendet nach Möglichkeit die Funktion IncludeTrailingPathDelimiter(). Werden Datenbanken zur Laufzeit konfiguriert, dann werden die zugehörigen Dataset-Komponenten (Table, Query) im geschlossenen Zustand erzeugt - deshalb musst Active nicht erst auf False gesetzt werden. Das würde auch nicht mehr helfen, weil ja bereits ein Zugriff auf eine nicht vorhandene Datenbank erfolgt wäre. Wenn du den Speicherort (Verzeichnis) deiner Datenbank öfter (z.B. für Queries) benötigst, dann würde ich ihn mir in einer globalen Variable merken und nicht jedesmal neu bestimmen. Die Steuerzeichenfolge zum Trennen von Textzeilen ist #13#10 oder besser sLineBreak. Wenn in einer Query ein Tabellenname unbekannt ist, dann musst du mal genau hinschauen - in der Regel gibt es dann dieses Datenbankobjekt auch nicht, meistens weil du dich verschrieben hast oder die Datenbank noch leer ist.
Delphi-Quellcode:
Grüße vom marabu
resourcestring
S_RELDBFOLDER = 'db'; S_DBNAME = 'db.tdbd'; S_DBNOTFOUND = 'Datenbank nicht gefunden:'#13#10'%s'; procedure ShowError(msg: string); begin if not QuietMode then MessageBeep(0); ShowMessage(msg); end; procedure Tfrm_main.FormCreate(Sender: TObject); begin self.DatabaseName := IncludeTrailingPathDelimiter( ExtractFilePath(ParamStr(0)) + S_RELDBFOLDER) + S_DBNAME; try TdbTable1.DatabaseName := self.DatabaseName; TdbTable1.Open; except ShowError(Format(S_DBNOTFOUND, [self.DatabaseName])); end end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:09 Uhr. |
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