AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Tabellenstruktur schnell kopieren
Thema durchsuchen
Ansicht
Themen-Optionen

Tabellenstruktur schnell kopieren

Ein Thema von skoschke · begonnen am 8. Nov 2018 · letzter Beitrag vom 8. Nov 2018
Antwort Antwort
skoschke

Registriert seit: 6. Jan 2009
523 Beiträge
 
Delphi 10.4 Sydney
 
#1

Tabellenstruktur schnell kopieren

  Alt 8. Nov 2018, 08:14
Datenbank: Foxpro SQlite • Version: ? • Zugriff über: Tadoquery, TFDQuery
Hallo,

ich möchte eine uralte Foxpro-Datenbank nach SQLite kopieren.

Mein Ansatz war so etwa:
Delphi-Quellcode:

var
queryoriginal: Tadoquery;
queryexport: TFDQuery;

....
  for f := 0 to queryoriginal.Fields.Count - 1 do
  begin
    ft := queryoriginal.Fields[f].DataType;
    fn := queryoriginal.Fields[f].FieldName;
    if not Assigned(queryexport.FindField(fn)) then
    begin
      SQL := 'ALTER TABLE Termine ADD ' + fn;
      case ft of
        ftString:
          SQL := SQL + ' TEXT';
        ftSmallint:
          SQL := SQL + ' INTEGER';
        ftInteger:
          SQL := SQL + ' INTEGER';
.....
        ftByte:
          SQL := SQL + ' INTEGER';
        ftExtended:
          SQL := SQL + ' FLOAT';
        ftSingle:
          SQL := SQL + ' FLOAT';
      else
        showmessage('Feldtyp nicht implementiert !');
      end; // case
      queryexport.SQL.Text := SQL;
      queryexport.ExecSQL;
    end; // Assigned
  end; // Fieldcount
Und dann Datensatz für Datensatz, Feld für Feld kopieren...

Gibt es da was schnelleres, was die Struktur (oder gleich die gesamte DB) kopiert?

Ciao
Stefan
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#2

AW: Tabellenstruktur schnell kopieren

  Alt 8. Nov 2018, 08:36
Kommt drauf an, wie Du es einsetzen möchtest.
Einmalig?
Innherhalb eines Programms, Endanwender, Migration von alter Version auf neue?

Schnell ist meist die Verwendung von Textexport & -import en block. Wie immer muss auf Feldtypen und besonders DB spezifische Feldtypen bei der Konvertierung geachtet werden.

Was Foxpro da bietet (export), weiß ich aber nicht.
Gruß, Jo
  Mit Zitat antworten Zitat
skoschke

Registriert seit: 6. Jan 2009
523 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Tabellenstruktur schnell kopieren

  Alt 8. Nov 2018, 08:47
Der Einsatz ist "ständig", das bestehende Programm auf Windows PC arbeitet nach wie vor mit der dbf-Datei, für mobile Anwendungen soll zyklisch der aktuelle Inhalt der dbf nach SQLite exportiert werden...

Ciao
Stefan
  Mit Zitat antworten Zitat
jobo

Registriert seit: 29. Nov 2010
3.072 Beiträge
 
Delphi 2010 Enterprise
 
#4

AW: Tabellenstruktur schnell kopieren

  Alt 8. Nov 2018, 09:36
Der Ansatz oben im Code ist ja erstmal dynamisch(!) eine Tabellenstruktur zu definieren. Ist das notwendig? Ändert sich das Foxpro System häufig?
Wenn nicht, habe ich statische Ausgangsstruktur und statische Zielstruktur, letztere kann fertig in einer "leeren" sqlite Datei liegen, bereit für eine (Datei-)Kopie und frische Befüllung.

Schau mal für sqlite nach:
Code:
sqlite> .mode csv
-- und
sqlite>.import c:/sqlite/daten.csv importtabelle
Die entstehende Tabelle ist u.U. nicht hinreichend strukturiert, kann aber dann nach Bedarf innerhalb sqlite mit insert into finalezieltabelle (<fieldlist>) (select from importabelle) übernommen werden.

U.U. hilfreich ist dabei die Möglichkeit, dass sqlite eine Funktionalität hat, um verschiedene DB (sprich einzelne sqlite Dateien) untereinander bekannt zu machen und simultan zugreifbar (Stichwort "ATTACH DATABASE").

Wie Du aus foxpro einen flatfile csv export bekommst, weißt Du vielleicht selbst besser als ich.
Gruß, Jo
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.475 Beiträge
 
Delphi 12 Athens
 
#5

AW: Tabellenstruktur schnell kopieren

  Alt 8. Nov 2018, 09:44
Vielleicht kann CopyDataSet hier helfen: FireDAC.Comp.DataSet.TFDDataSet.CopyDataSet
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
skoschke

Registriert seit: 6. Jan 2009
523 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Tabellenstruktur schnell kopieren

  Alt 8. Nov 2018, 14:21
Hallo,

das klingt ja sehr interessant!
Das werde ich mir mal genauer ansehen

Ciao
Stefan
  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 23:36 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