![]() |
Re: Datenbank zur Laufzeit erstellen?
Du kannst mit FindFirst und FindNext überprüfen, ob eine Datei bereits existiert. Die Funktionen sind in der Hilfe gut erklärt.
Den zweiten Teil deiner Frage verstehe ich nicht ganz. |
Re: Datenbank zur Laufzeit erstellen?
Zitat:
also ich schreibe in die ersten 10 Felder nur Daten über den Besitzer rein. im 1. Feld steht der Name deshalb möchte ich gern beim Start direkt auf dieses Feld zugreifen, und wenn dann die DATEI gar nicht da ist, oder leer ist, sollte ich dementsprechend reagieren können. Also geht es mir eigentlich nur darum, den herbeigeführten Error (wie Table is too busy...) abzufangen Danke |
Re: Datenbank zur Laufzeit erstellen?
Hallo Snooze,
ich bin erst jetzt auf Deine Frage gestoßen, vielleicht nützt Dir folgendes ja noch etwas:
Code:
mfg
procedure TFDaSi.GenSVAuftragsdatei1Click(Sender: TObject);
begin Tab1.Active := false; Tab1.DatabaseName := DataPath; //d:\myprog\daten Tab1.TableName := fnSVOrder; //d:\myprog Tab1.TableType := ttParadox; Tab1.FieldDefs.Clear; with Tab1.FieldDefs do begin Add('ID', ftAutoInc, 0, false); // für den Primärindex Add('Gruppe', ftString, 20, false); Add('QLW', ftString, 80, false); Add('CopySubDir', ftBoolean, 0, false); Add('AktRotation', ftInteger, 0, false); Add('InklFilter', ftMemo, 0, false); Add('Datum', ftDate, 0, false); Add('Zeit', ftTime, 0, false); end; { of FieldDefs } try Tab1.CreateTable; except end; // Index erzeugen Tab1.IndexDefs.Clear; Tab1.IndexDefs.Update; Tab1.AddIndex('','ID', [ixPrimary]); Tab1.AddIndex('Gruppe','Gruppe',[ixCaseInsensitive]); end; eddy |
Re: Datenbank zur Laufzeit erstellen?
Table1.Active := false;
Table1.DatabaseName := APath; //d:\myprog\daten Table1.TableName := 'Test'; //d:\myprog Table1.TableType := ttParadox; Table1.FieldDefs.Clear; with Table1.FieldDefs do begin Add('ID', ftAutoInc, 0, false); // für den Primärindex Add('Gruppe', ftString, 20, false); Add('QLW', ftString, 80, false); Add('CopySubDir', ftBoolean, 0, false); Add('AktRotation', ftInteger, 0, false); Add('InklFilter', ftMemo, 0, false); Add('Datum', ftDate, 0, false); Add('Zeit', ftTime, 0, false); end; { of FieldDefs } try Table1.CreateTable; except end; // Index erzeugen Table1.IndexDefs.Clear; Table1.IndexDefs.Update; Table1.AddIndex('','ID', [ixPrimary]); Table1.AddIndex('Gruppe','Gruppe',[ixCaseInsensitive]); so sieht mein Code jetzt nach Anpassung aus, nur schreibt er dann, dass die tabelle gar nicht existiert, und das will ich ja so haben, dass er mir das sagt, aber ein wenig anders *Ggg* Edit: erst schreibt er, dass Datensatzanzahl nicht angegeben ist und beim weitergehen kommt obige Meldung erst |
Re: Datenbank zur Laufzeit erstellen?
Tut mir leid, dass ich nicht ehr geantwortet habe. Ich hatte eben keine Zeit mehr für DP. Arbeit ;)
Du kannst in den Except-Zweig eine Showmessage-Anweisung schreiben. Dann führt er diese Anweisung aus, wenn ein Fehler auftritt. Etwa so:
Delphi-Quellcode:
Und von welchen Meldungen sprichts du denn? Wann kommen die und wie lauten sie?
try
(...) except Showmessage('Fehler!!!'); // Nur sollte deine Meldung etwas aussagekräftiger sein ;) end; |
Re: Datenbank zur Laufzeit erstellen?
baue nun das Projekt neu auf, dann werde ich gleich als erstes dies perfekt machen.
Aber danke trotzdem für diesen Tipp, :-D mfg Stefan :dp: |
Re: Datenbank zur Laufzeit erstellen?
Okay, dann viel Glück :D
|
Re: Datenbank zur Laufzeit erstellen?
Zitat:
Code:
MFG Henrik :hi:
Fileexists(File:string):boolean
|
Re: Datenbank zur Laufzeit erstellen?
Hallo Snooze,
da Du den Quelltext nur leicht geändert hast könnte folgende Zeile zu dem Fehler führen:
Code:
Ersetz' diese mal durch:
Table1.TableName := 'Test';
Code:
mfg
Table1.TableName := 'Test.DB';
eddy |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:03 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 by Thomas Breitkreuz