Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi FireDac SQLite TFDTable Feld hinzufügen ohne löschen durch CreateDataSet (https://www.delphipraxis.net/197247-firedac-sqlite-tfdtable-feld-hinzufuegen-ohne-loeschen-durch-createdataset.html)

DukeM 24. Jul 2018 16:02

Datenbank: SQlite • Version: 10.2 • Zugriff über: FireDac

FireDac SQLite TFDTable Feld hinzufügen ohne löschen durch CreateDataSet
 
Hallo, seit Wochen versuche ich eine Tabelle um eine Spalte/Feld zu erweitern. Jetzt brauche ich aber doch solangsam ein Lösung, da ich nicht extra einen Ex/Import schreiben möchte :-(

Mit der einzigen Lösung die ich kenne, löscht er die ganze Tabelle. "CreateDataSet" erstellt "neu1" aber löscht gleichzeitig alles bisherige:
Code:
with FDTable.fielddefs.AddFieldDef do begin
  DataType := ftInteger;
  Name := 'neu1';
end;

FDTable.CreateDataSet;
Wenn ich über den TFDTable FieldEditor zur Entwurfszeit ein Feld hinzufüge, meckert er dann, dass diese nicht gefunden wird. Idealerweise soll die Komponente sich doch darum kümmern, dass es hinzugefügt wird.


Gruß und Danke

Fritzew 24. Jul 2018 16:06

AW: FireDac SQLite TFDTable Feld hinzufügen ohne löschen durch CreateDataSet
 
Einfach:

Ausführen in einem Query:

Delphi-Quellcode:
"Alter Table Tablename add [neu1] INTEGER"

DukeM 24. Jul 2018 16:21

AW: FireDac SQLite TFDTable Feld hinzufügen ohne löschen durch CreateDataSet
 
Ja, hatte ich jetzt auch noch mal probiert. Klappt so.. mist, sorry, hatte letzte mal dann wohl noch einen anderen Fehler.
Trotzdem ärgerlich, dass die Komponente das nicht selber kann.

p80286 24. Jul 2018 21:22

AW: FireDac SQLite TFDTable Feld hinzufügen ohne löschen durch CreateDataSet
 
Warum sollte die Komponente das können?
Ihre vordringliche Aufgabe ist die Kommunikation mit der Datenbank, nicht ihre Modifikation. Dafür werden meist spezielle Programme mitgeliefert.

Gruß
K-H

DukeM 25. Jul 2018 08:16

AW: FireDac SQLite TFDTable Feld hinzufügen ohne löschen durch CreateDataSet
 
in TFDTable habe ich ja die "Verwaltung" der Felder, über den Editor. Wenn ich dort eins hinzufüge, wäre es praktisch wenn er sich auch darum kümmert, dass es eingefügt wird.
Mit "FDTable.CreateDataSet" erstellt er sie ja auch komplett. Die Komponente hat 200 Methoden und Propertys, da dachte ich, man kann sie irgendwie dazu bringen :-)

p80286 25. Jul 2018 10:10

AW: FireDac SQLite TFDTable Feld hinzufügen ohne löschen durch CreateDataSet
 
Sicher?
Zitat:

Creates new empty internal data storage for a dataset.

Use CreateDataSet at run time to create an empty internal data storage for a dataset and activate the dataset.

After the call, the application can populate the dataset with data and optionally save data to the external file. Optionally, the dataset can be created setting Active to True.

Das "DataSet" mit dem im Programm hantiert wird ist der lokale Speicher der DB-Daten.

Gruß
K-H

Frickler 25. Jul 2018 11:24

AW: FireDac SQLite TFDTable Feld hinzufügen ohne löschen durch CreateDataSet
 
Zitat:

Zitat von p80286 (Beitrag 1408626)
Sicher?
Zitat:

Creates new empty internal data storage for a dataset.

Use CreateDataSet at run time to create an empty internal data storage for a dataset and activate the dataset.

After the call, the application can populate the dataset with data and optionally save data to the external file. Optionally, the dataset can be created setting Active to True.

Das "DataSet" mit dem im Programm hantiert wird ist der lokale Speicher der DB-Daten.

Gruß
K-H

Wenn Du etwas weiter runterscrollst, folgt da noch der wichtige Satz
Zitat:

Note that this method is applicable only for TFDCustomMemTable.
Mit anderen Worten, das entspricht der gleichnamigen Methode der ClientDataSets.

Ansonsten bietet TFDTable aber auch die von anno dunnemals (BDE/TTable) bekannte Methode CreateTable. Aber auch die kann Tabellen nur anlegen, nicht ändern.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:11 Uhr.

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