![]() |
Datenbank: BDE • Version: 1.0 • Zugriff über: odbc
Datenbankstruktur im Quelltext erstellen, wie?
Hallo,
derzeit beschäftigt mich die Frage, wie ich eine Datenbankstruktur im Quelltext aufbauen kann. Klarer ausgedrückt: Früher konnte ich mit der Datenbank Oberfläche meine Datenbank entwerfen: Feldname --- Vorname Feldlänge --- 20 Feldtyp --- Zeichen ... Wie erreiche ich das mit Delphi Quelltext. Gibt es da eine Schnittstelle in der TTable Komponente. Zu Turbo Pascal Zeiten hatte ich mal was geschrieben und es gab damals Bibliotheken dafür. Aber geht das eventuell mit der TTable Komponente eleganter? |
AW: Datenbankstruktur im Quelltext erstellen, wie?
Gibt es eien Grund zur Verwendung der BDE?
|
AW: Datenbankstruktur im Quelltext erstellen, wie?
Zitat:
"Datenbankstruktur im Quelltext erstellen, wie?" in Turbo Delphi -> Datenbankstruktur erstellen -> wie ändern. Der andere Grund ist dieses restriktive Forum das mich zwingt, die verwendete Datenbank um jeden Preis anzugeben, damit die Frage überhaupt erst mal gepostet wird. Schikane!!! Wie kann ich das machen, gerne möglichst unabhängig von der später verwendeten Datenbank Engine. Der Grund, warum ich BDE verwende ist einfach der, das ich seit Delphi 3 nicht mehr mit Datenbanken gearbeitet habe und heute in Turbo Delphi eine Datenbankanwendung erstellen wollte, doch leider gibt es da nirgendwo die Möglichkeit, interaktiv die Datenbanktabelle aufzubauen und wenn ich meine Anwendung starte, brav mit DBText Eingabefeldern gebaut und die Datenquellen verlinkt -> DBText -> DataSource -> TTable, dann kann ich nichts in die Eingabefelder eingeben und ich kann auch keine Daten speichern um wenigstens erst mal eine leere Tabelle zu kriegen, in der außer der Felddefinition gar nix steht. Ich erimnnere mich dunkel das es zum Schreiben der Daten -> TTable.Update gab. Wenn aber noch gar keine Datenbankdatei existiert??? Auch das Setzen der TTable Eigenschaft Active auf TRUE bringt nichts, obwohl ich im Feldeditor der TTable Komponente meine Felder definiert habe. Ich erhalte stattdessen bei Setzen Active auf TRUE die Fehlermendung -> <meine.dbf> existiert nicht. Wie also erzeuge ich die. Einfach nur die leere Datei mit den Felddefinitionen. Gerne vom späteren Datenbanktreiber unabhängig, aber als Workaround genügt vorerst eine .dbf Datei. Gibt es eine Chance, die Tabellenstruktur der leeren Datei mit den späteren Daten mit ObjectPascal unter Verwendung der TDataSet Klasse zu erstellen oder brauche ich zwingend ein Tool, mit dem ich die leere Tabelle erzeugen kann/muss? |
AW: Datenbankstruktur im Quelltext erstellen, wie?
Hallo,
Delphi-Quellcode:
sollte dein Problem lösen.
if not ttable.Exists then ttable.CreateTable;
Die Felddefinitionen müssen in FieldDefs abgelegt, die Indexdefinitionen (soweit erforderlich) in IndexDefs, und StoreDefs muss = True sein. Das Erstellen der Tabelle kannst Du dann z. B. ins FormCreate legen, dann wird die Tabelle beim ersten Programmstart automatisch erstellt. TTable.Active := True sollte dann auch im FormCreate stehen. |
AW: Datenbankstruktur im Quelltext erstellen, wie?
Hey, Danke @nahpets, das war es, was ich wissen wollte.
Allerdings bescwert er sich immer noch, das meine Datei, deren Name ich mit TTable.DatabaseName := <mein>.dbf; zugewiesen habe, nicht existiert. Ich will ja aber gerade nach Definition der Felder mit dem Feldeditor im Objektinspektor, die Datei schreiben, wenn sie noch nicht existiert und wenn sie existiert, dann einfach mit TTable.Open öffnen.
Delphi-Quellcode:
Was kann/muss ich noch machen?
procedure TForm1.FormCreate(Sender: Tobject);
begin MyTable.DatabaseName := <mein>.dbf; if MyTable.Exists then MyTable.OPen else begin MyTable.StoreDefs := true; MyTable.CreateTable; end; end; |
AW: Datenbankstruktur im Quelltext erstellen, wie?
Hallo,
der Tabellenname kommt nach TTable.TableName. TTable.DatabaseName bleibt leer. |
AW: Datenbankstruktur im Quelltext erstellen, wie?
Danke so weit. Aber jetzt erhalte ich eine
EDBEngineError Exception mit der Meldung "Merkmal nicht verfügnar". Was muss ich noch machen? |
AW: Datenbankstruktur im Quelltext erstellen, wie?
Mir ist, als hätte ich es mal so gemacht, das war allerdings beim Firebird Embedded.
Delphi-Quellcode:
Oder du rufst das entsprechende
//TIBTable
IBTable1.Close; IBTable1.TableName := 'abd'; IBTable1.FieldDefs.Clear; IBTable1.FieldDefs.Add(...); IBTable1.FieldDefs.Add(...); IBTable1.FieldDefs.Add(...); IBTable1.CreateTable;
Delphi-Quellcode:
auf (execute).
CREATE TABLE abc ...
|
AW: Datenbankstruktur im Quelltext erstellen, wie?
Zitat:
|
AW: Datenbankstruktur im Quelltext erstellen, wie?
Hallo,
Ich würde das ganze per TQuery machen. Heiko |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:19 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