![]() |
Neue Tabelle aus dem Programm heraus anlegen
Morgen,
ich muss euch nochmal nerven, sorry :oops: Also, ich möchte per Button eine neue Tabelle erzeugen können, deren Namen ich per Edit-Komponente bestimmen kann. Dann soll man per Combobox zwischen den angelegten Tabellen wechseln können. Es soll sich um eine Paradox7 Tabelle handeln (wenn dies von Nöten sein sollte) Bitte um Hilfe. |
Eine neue Table kannst Du mit CreateTable erzeugen. In der Hilfe von Delphi ist ein recht ausführliches Beispiel für die Erstellung einer Paradox-Tabelle.
|
Danke für deine Antwort.
Gesucht und gefunden :) Aber als ich das ausprobieren wollte, hat sich nichts getan. Er hat mir keine neue Tabelle erzeugt. Ich hab folgenden Code benutzt.
Delphi-Quellcode:
Ich möchte eine Tabelle mit Name, Vorname´, Note1,2,3,4,5 und Bemerkungen erzeugen. Das hab ich probiert.
procedure TForm3.Button1Click(Sender: TObject);
begin { Evtl. vorhandene Tabelle nicht überschreiben } if not Table1.Exists then begin with Table1 do begin { Die Table-Komponente darf nicht aktiv sein } Active := False; { Zuerst den Tabellentyp beschreiben und die Tabelle benennen } DatabaseName := ''; TableType := ttParadox; TableName := edit1.text; { Dann die Felder in der Tabelle beschreiben } with FieldDefs do begin Clear; with AddFieldDef do begin Name := 'Name'; DataType := ftInteger; Required := True; size := 20; end; with AddFieldDef do begin Name := 'Vorname'; DataType := ftString; Size := 20; required := true; end; with AddFieldDef do begin Name := 'Note1'; DataType := ftString; Size := 3; required := false; end; with AddFieldDef do begin Name := 'Note2'; DataType := ftString; Size := 3; required := false; end; with AddFieldDef do begin Name := 'Note3'; DataType := ftString; Size := 3; required := false; end; with AddFieldDef do begin Name := 'Note4'; DataType := ftString; Size := 3; required := false; end; with AddFieldDef do begin Name := 'Note5'; DataType := ftString; Size := 3; required := false; end; with AddFieldDef do begin Name := 'Bemerkungen'; DataType := ftString; Size := 150; required := false; end; end; { Dann alle Indizes beschreiben } with IndexDefs do begin Clear; { Der erste Index hat keinen Namen, denn er ist ein } { primärer Paradox-Schlüssel } with AddIndexDef do begin Name := 'Name'; Fields := 'Field1'; Options := [ixPrimary]; end; with AddIndexDef do begin Name := 'Vorname'; Fields := 'Field2'; Options := [ixCaseInsensitive]; end; with AddIndexDef do begin Name := 'Note1'; Fields := 'Field3'; Options := [ixCaseInsensitive]; end; with AddIndexDef do begin Name := 'Note2'; Fields := 'Field4'; Options := [ixCaseInsensitive]; end; with AddIndexDef do begin Name := 'Note3'; Fields := 'Field5'; Options := [ixCaseInsensitive]; end; with AddIndexDef do begin Name := 'Note4'; Fields := 'Field6'; Options := [ixCaseInsensitive]; end; with AddIndexDef do begin Name := 'Note5'; Fields := 'Field7'; Options := [ixCaseInsensitive]; end; with AddIndexDef do begin Name := 'Bemerkungen'; Fields := 'Field8'; Options := [ixCaseInsensitive]; end; end; { CreateTable-Methode zu Erzeugen der Tabelle aufrufen } CreateTable; end; end; end; Aber wo liegt der Fehler :?: :| |
Kann es sein, dass er wegen:
Code:
gar nicht anfängt?
if not Table1.Exists then begin
|
Hi,
was hälst Du davon (Local) SQL zu verwenden.
SQL-Code:
Du mußt den Code in eine TQuery laden
CREATE TABLE "employee.db"
( Last_Name CHAR(20), First_Name CHAR(15), Salary NUMERIC(10,2), Dept_No SMALLINT, PRIMARY KEY (Last_Name, First_Name) ) Eigenschaft 'SQL' und dann die Query mit ExecSQL ausführen. Grüsse Wolfgang |
ach so
mehr Info dazu unter LocalSQL.hlp |
Zitat:
Falls table1 nicht vorhanden ist, dann lege es an...oder mache ich da'n Denkfehler ??? Zitat:
@ woki Kannste das nicht mal ein bisschen genauer beschreiben (so für Anfänger :mrgreen: ) |
Ich habe Deinen Code mal überarbeitet:
Code:
Erst mal hast Du Database frei gelassen. Sofern du keinen Alias gesetzt hast, sollte dort der Pfad stehen.
{ Evtl. vorhandene Tabelle nicht überschreiben }
if not Table1.Exists then begin with Table1 do begin { Die Table-Komponente darf nicht aktiv sein } Active := False; { Zuerst den Tabellentyp beschreiben und die Tabelle benennen } DatabaseName := ExtractFilePath(edit1.text); TableType := ttParadox; TableName := ExtractFileName(edit1.text); { Dann die Felder in der Tabelle beschreiben } with FieldDefs do begin Clear; with AddFieldDef do begin Name := 'Name'; DataType := ftString; Required := True; size := 20; end; with AddFieldDef do begin Name := 'Vorname'; DataType := ftString; Size := 20; required := true; end; with AddFieldDef do begin Name := 'Note1'; DataType := ftString; Size := 3; required := false; end; with AddFieldDef do begin Name := 'Note2'; DataType := ftString; Size := 3; required := false; end; with AddFieldDef do begin Name := 'Note3'; DataType := ftString; Size := 3; required := false; end; with AddFieldDef do begin Name := 'Note4'; DataType := ftString; Size := 3; required := false; end; with AddFieldDef do begin Name := 'Note5'; DataType := ftString; Size := 3; required := false; end; with AddFieldDef do begin Name := 'Bemerkungen'; DataType := ftString; Size := 150; required := false; end; end; { Dann alle Indizes beschreiben } with IndexDefs do begin Clear; { Der erste Index hat keinen Namen, denn er ist ein } { primärer Paradox-Schlüssel } end; { CreateTable-Methode zu Erzeugen der Tabelle aufrufen } CreateTable; end; end; Dann sollte Table nie mit Pfad sein, habe ich geändert. Dann kann ein Feld Name vom Typ Integer nie 20 groß sein, ich habe es auf String geändert. Dann habe ich noch alle Inidizes gelöscht. Was hattest Du denn damit vor? Du wolltest Felder im Index benennen, die Du gar nicht angelegt hast. |
SUPER :hello: :spin:
Hat geklappt.....Vielen Dank euch allen.. |
Ähh, wollte jetzt noch die neuen Tabellen per Combobox aufrufen. Und dann soll man die von der Combobox geöffnete Tabelle mit einer Grid-Komponente anzeigen können. Hab gestern ein bisschen rumprobiert. Habs aber nicht hinbekommen.
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:08 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