Ich möchte Daten in eine Nexusdb-Tabelle einfügen, die in einer Zugriffsdatenbanktabelle sind. Ich verwende dafür zwei Abfragen. eine für ausgewählte Daten aus der Access-Datenbank und eine andere für das Einfügen in nexusdb. Ich möchte das nicht mit einer Schleife einfügen. Gibt es eine Möglichkeit, den gesamten ausgewählten Datensatz direkt einzufügen?Einfügen von Daten aus einem Dataset in Delphi
Antwort
Gibt es eine Möglichkeit, alle ausgewählten Datensätze direkt einzufügen?
Wenn die beiden Datenbanken waren, sagen wir, MS SQL-Server oder eine andere Back-End-SQL-Server wie MySQL, könnten Sie dies tun, aber zwischen MS Access und NexusDB, keine, die ich kenne. Die einzigen Db-Zugriffskonnektoren, die sie gemeinsam zu haben scheinen, sind ODBC und afaik, die heterogene Abfragen über verschiedene Treiber hinweg nicht unterstützen (so dass Sie nicht in die Datei destinationserver.database.table einfügen können, wählen Sie * aus source.database .table ")
Also ich denke, Sie sind mit einer Schleife fest. Die einzige wirkliche Frage ist, ob Sie die Schleife selbst schreiben müssen oder ob sie im Bibliothekscode versteckt ist.
Der folgende Code verwendet die TFDDataMove-Komponente von FireDAC, um Daten zwischen Tabellen zu verschieben. Um es zu verwenden, muss der Zielserver natürlich entweder FireDAC oder ODBC unterstützen. Wie Uwe Raabe jetzt sagt (Delphi aktuelle Version ist Seattle), unterstützt FireDAC keine NexusDB oder umgekehrt. Es ist jedoch ein ODBC-Treiber für NexusDB verfügbar, laut ihrer Website. Obwohl ich NexusDB nicht installiert habe, funktioniert das folgende mit einem anderen ODBC-Treiber gut, so sollte mit NexusDB funktionieren.
procedure TForm1.TestDataMove;
var
Item : TFdMappingItem;
begin
Item := FDDataMove1.Mappings.Add;
Item.SourceFieldName := 'ID';
Item.DestinationFieldName := 'ID';
Item := FDDataMove1.Mappings.Add;
Item.SourceFieldName := 'Name';
Item.DestinationFieldName := 'Name';
FDDataMove1.Source := FDTable1;
FDDataMove1.Destination := FDTable2;
FDDataMove1.Options := FDDataMove1.Options - [poOptimiseSrc];
FDDataMove1.Execute;
FDConnection2.Connected := False;
FDTable2.Open;
end;
FireDAC unterstützt ab Seattle keine NexusDB. Da die Quelle dieser DataMove-Komponente eigentlich ein einfaches TDataSet sein kann, würde diese Methode funktionieren, wenn Sie die Daten aus der Nexus-Tabelle in ein FD-kompatibles Dataset verschieben möchten, aber nicht andersherum, wie hier gefordert. –
Vielleicht 'TFDBatchMove' ist der bessere Ansatz: http://docwiki.embarcadero.com/Libraries/Seattle/en/FireDAC.Comp.BatchMove.TFBatchMove –
@UweRaabe: Danke. Es scheint ein bisschen eine Kampagne gegeben zu haben, um Nexus dazu zu bringen, FireDAC zu unterstützen, aber ich weiß nicht, was daraus geworden ist. – MartynA
- 1. Einfügen von Zeilen in Beziehung mit einem stark typisierten DataSet
- 2. Einfügen von Daten aus einem dynamischen Formular in die Datenbank
- 3. Schnellste Möglichkeit zum Schleifen und Kopieren von Daten von einem DataSet zu einem anderen DataSet
- 4. Einfügen von Daten in BigQuery aus Dataflow
- 5. Einfügen von Daten aus API in DOM
- 6. Einfügen von Daten in PostgreSQL aus Python
- 7. Einfügen von Daten aus TabelleA in TabelleB
- 8. Einfügen von Daten mit SqlDataAdapter
- 9. Aktualisieren aufeinanderfolgender Zeilen aus einem Dataset
- 10. Einfügen von Daten aus einer anderen Tabelle
- 11. Einfügen von SQL-Daten aus Java-Ausgabe
- 12. Wie eingegebene fehlende Daten aus dem vollständigen Dataset in R
- 13. So zeigen Sie verwandte Daten aus Dataset in wpf datagrid
- 14. Gibt es eine Möglichkeit, Daten von Textdatei in Dataset einzufügen?
- 15. Einfügen von Daten in MySQL
- 16. Die beste Methode zum Füllen von DataSet aus einem SQLDataReader
- 17. Get gefilterte Daten von Dataset zu Datentabelle
- 18. Erhalten Sie Daten aus einer XML .NET DataSet in PHP
- 19. Einfügen von Daten aus Tabelle1 in Tabelle2 in SQL
- 20. Einfügen von Daten aus json zu MySQL-Tabelle aus php
- 21. Wie erstelle ich ein DataSet aus einem Parkett?
- 22. Einfügen von Datensätzen aus einem XML in die Datenbank
- 23. Clone DataTable von einem Dataset zu DataTable anderen DataSet
- 24. PHP - Einfügen von Daten aus Checkbox-Formularen in MYSQL
- 25. Binding DataSet zu einem Repeater
- 26. Verschieben von Tabellen von US-Dataset zu EU-Dataset
- 27. Einfügen von Daten aus der Registrierung in vordefinierte Lesezeichen
- 28. Einfügen von Daten in MySQL-Tabelle aus Python-Skript
- 29. Python Einfügen von Daten aus der Liste in SQlite3
- 30. Einfügen von mehreren Daten aus anderen Tabellen in Codezeichen
Sie sollten Ihre Delphi-Version angeben. –
@mjn Nein, ich möchte das ohne eine Schleife. – Ishanka
@UweRaabe Delphi 10 Seattle – Ishanka