![]() |
Paradox-tabellen im Ordner der .exe erstellen
Abend,
beim öffen meines programm prüfe ich ob die paradox tabellen da sind oda nicht. Falls nicht das sollen sie erstellt werden. Hier meine 2 Fragen dazu: Wie frage ich ab ob die 2 tabellen im ordner der *.exe sind. Und wenn die nicht da sind, wie erstelle ich sie genau da?
Delphi-Quellcode:
Thx,
IF NOT FileExists('C:\***\daten.DB') THEN ...
plautzer |
Re: Paradox-tabellen im Ordner der .exe erstellen
Hi Plautzer!
Ich würde keine Prüfungen auf Existenz der Tabelle vornehmen, sondern gleich versuchen die Tabelle zu erstellen. Wenn die Tabelle schon existiert, dann bekommst Du einen Fehler (13075), den Du mit „try .. except ..end“ abfangen kannst. Wenn die Tabelle nicht existiert, dann wird sie erstellt. Der code sollte etwa so aussehen:
Delphi-Quellcode:
viele Grüße
function myCreateTable: boolean;
var i, error_no: integer; query: TQuery; begin // Rückgabe auf true setzen (= alles OK) myCreateTable := true; // Query aufbauen query := TQuery.Create(nil); with query do begin SQL.Clear; SQL.Add('create table "Tabelle.db"'); SQL.Add('('); SQL.Add(' ID smallint,'); SQL.Add(' Feld1 char(40),'); SQL.Add(' Feld1 char(40),'); SQL.Add(' primary key(ID)'); SQL.Add(')'); end; // Query ausführen, dabei Fehler abfangen // “13057 File already exists" -> Tabelle existiert try query.ExecSQL; except on e: EDBEngineError do for i := 0 to e.ErrorCount - 1 do begin error_no := e.Errors[i].ErrorCode; // falls Fehler-ID nicht gleich 13057, dann Rückgabe auf false setzen und // Message anzeigen if error_no <> 13057 then begin MessageDlg(e.Message + #13 + 'Error no: ' + IntToStr(error_no), mtError, [mbOK], 0); myCreateTable := false; end; end; end; // Query nicht mehr nötig, also weghauen query.Destroy; end; Markus :gruebel: |
Re: Paradox-tabellen im Ordner der .exe erstellen
Danke,
ich habe mir mittlerweile auf dieser Weise geholfen:
Delphi-Quellcode:
Das sollte auch funzen, oder sollte ich das doch lieber in eine funktion bauen?
pfad := ExtractFilePath(Application.ExeName);
name := ExtractFileName(Application.ExeName); ext := ExtractFileExt(Application.ExeName); tabellen:=pfad + 'tabellen'; with Table1 do DatabaseName := tabellen; with Table2 do DatabaseName := tabellen; IF NOT FileExists(tabellen + '\daten.DB') THEN BEGIn if not ForceDirectories(tabellen) then ShowMessage('Beim Anlegen von '+Tabellen+' ist ein Fehler aufgetreten! Bitte überprüfen Sie ob Schreibzugriff auf den Datenträger der *.exe haben.'); with Table1 do begin active := false; DatabaseName := tabellen; tabletype := TTParadox; tablename := 'daten'; Name := 'Table1'; with FieldDefs do begin clear; Add('Whg', ftinteger, 0, false); Add('Name', ftString, 50, false); Add('Vorname', ftstring, 50, false); Add('Mietbegin', ftDate, 0, false); Add('Bemerkung', ftString, 100, false); Add('telefon', ftinteger, 0, false); Add('Bruttomiete', ftcurrency, 0, false); Plautzer |
Re: Paradox-tabellen im Ordner der .exe erstellen
Hi Plautzer!
Das Implementieren der Funktionen finde ich immer empfehlenswert, weil Funktionen: - vermeiden der Entstehung s.g. „spaghetti code“, - machen Programmcode übersichtlicher und eleganter, - machen Programme strukturiert und pflegeleichter, - und, und, und ... Aber, alles hängt vor allem von Dir und deiner Entwickler-Philosophie ... :) Viele Grüße Markus :gruebel: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:33 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