Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Datenbank zur Laufzeit erstellen? (https://www.delphipraxis.net/16809-datenbank-zur-laufzeit-erstellen.html)

Cuchulainn 24. Feb 2004 14:37

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.

Snooze 24. Feb 2004 14:46

Re: Datenbank zur Laufzeit erstellen?
 
Zitat:

Zitat von Cuchulainn
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.


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

eddy 24. Feb 2004 15:34

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:
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;
mfg
eddy

Snooze 24. Feb 2004 16:38

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

Cuchulainn 24. Feb 2004 16:55

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:
try
(...)
except
  Showmessage('Fehler!!!'); // Nur sollte deine Meldung etwas aussagekräftiger sein ;)
end;
Und von welchen Meldungen sprichts du denn? Wann kommen die und wie lauten sie?

Snooze 24. Feb 2004 17:00

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:

Cuchulainn 25. Feb 2004 06:42

Re: Datenbank zur Laufzeit erstellen?
 
Okay, dann viel Glück :D

Spasskeks 25. Feb 2004 14:13

Re: Datenbank zur Laufzeit erstellen?
 
Zitat:

kann ich irgendwie überprüfen, ob die Datei bereits vorhanden ist?
Geht auch ganz gut mit
Code:
Fileexists(File:string):boolean
MFG Henrik :hi:

eddy 25. Feb 2004 15:13

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:
Table1.TableName := 'Test';
Ersetz' diese mal durch:
Code:
Table1.TableName := 'Test.DB';
mfg
eddy


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

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