AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi TADODataSet.LoadFromFile in DB schreiben
Thema durchsuchen
Ansicht
Themen-Optionen

TADODataSet.LoadFromFile in DB schreiben

Ein Thema von PistolenPeter · begonnen am 11. Mai 2011 · letzter Beitrag vom 11. Mai 2011
Antwort Antwort
PistolenPeter

Registriert seit: 11. Jun 2010
9 Beiträge
 
#1

TADODataSet.LoadFromFile in DB schreiben

  Alt 11. Mai 2011, 12:03
Datenbank: Oracle • Version: 10g • Zugriff über: TADODataSet
Hallo zusammen,

ich möchte Daten aus einer XML Datei laden und zurück in eine Datenbank schreiben.
Die XML Datei habe ich zuvor mit TADODataSet.SaveToFile erzeugt.
So sieht mein zurzeit Code aus:

Delphi-Quellcode:
  DataSetSource.LoadFromFile(FileName);

  CreateTable(DataSetSource); // eigene Methode erstellt leere Tabelle je nach Zieldatenbank
  DataSetDest.CommandText := 'SELECT * FROM FileName WHERE 1=0';
  DataSetDest.Open;

  while NOT DataSetSource.Eof do
  begin
    DataSetDest.Insert;

    for n := 0 to DataSetSource.Fields.Count - 1 do
    if NOT DataSetSource.Fields[n].IsNull then
      DataSetDest.Fields[n].Value := DataSetSource.Fields[n].Value;
    DataSetDest.Post;

    DataSetSource.Next;
  end;
end;
Das ist allerdings sehr langsam.
Ich habe schon probiert das "DataSetDest.Post" erst nach dem gesamten Durchlauf auszuführen, aber das hat auch keinen merklichen Unterschied gemacht.

Hat jemand einen Idee, wie man das Ganze etwas schneller hinbekommt?
Es müsste doch eine Möglichkeit geben über das Recordset Daten zu kopieren, oder nicht?
Alle Versuche in diese Richtung sind allerdings kläglich gescheitert.

Grüße
Peter
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.658 Beiträge
 
Delphi 12 Athens
 
#2

AW: TADODataSet.LoadFromFile in DB schreiben

  Alt 11. Mai 2011, 12:06
Hallo und Willkommen in der DP ,

kannst Du nicht einfach die INSERT INTO SELECT FROM-Syntax benutzen? Ich bin nicht sicher, kann mir aber vorstellen, dass das schneller geht.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
PistolenPeter

Registriert seit: 11. Jun 2010
9 Beiträge
 
#3

AW: TADODataSet.LoadFromFile in DB schreiben

  Alt 11. Mai 2011, 12:44
Hallo Detlef,

Danke für Deine schnelle Antwort.
Nach dem Einladen der XML Datei über LoadFromFile kann ich über die ADODataSet Komponente auf die Daten zugreifen.
Die SQL Anweisung, wie von Dir vorgeschlagen, verlangt aber doch im "SELECT FROM" Teil eine existierende Tabelle in der aktuellen Datenbank, oder nicht?
Ich verstehe nicht, wie ich dort als Quelle ein DataSet angeben soll.

Grüße
Peter
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.658 Beiträge
 
Delphi 12 Athens
 
#4

AW: TADODataSet.LoadFromFile in DB schreiben

  Alt 11. Mai 2011, 12:59
Sry, Du hast recht, ich hatte Dich falsch verstanden. Dann muss man sich wohl etwas anderes ausdenken
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.739 Beiträge
 
Delphi 6 Enterprise
 
#5

AW: TADODataSet.LoadFromFile in DB schreiben

  Alt 11. Mai 2011, 13:07
Gibts nicht irgendwelche Oracle-Tools, mit denen man solche Dateien direkt in die Datenbank blasen kann? SQLLoader, IrgendwasPump,...?
Ralph
  Mit Zitat antworten Zitat
PistolenPeter

Registriert seit: 11. Jun 2010
9 Beiträge
 
#6

AW: TADODataSet.LoadFromFile in DB schreiben

  Alt 11. Mai 2011, 13:38
Ja, da gibt's jede Menge und teilweise sogar sehr gute Programme.
Aber ich brauche eines das
  1. als DLL in andere meiner Anwendungen integriert werden kann.
  2. Daten von unterschiedlichen Datenbanken kopiert (von Oracle zu MS SQL oder umgekehrt).
  3. quelloffen und lizenzfrei ist.
Grüße
Peter
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:56 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