AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi DB-übergreifende Abfrage / Kopie einer Tabelle
Thema durchsuchen
Ansicht
Themen-Optionen

DB-übergreifende Abfrage / Kopie einer Tabelle

Ein Thema von nostromo73 · begonnen am 24. Mär 2003 · letzter Beitrag vom 31. Mär 2003
Antwort Antwort
Seite 2 von 2     12   
nostromo73

Registriert seit: 24. Mär 2003
11 Beiträge
 
Delphi 7 Professional
 
#11
  Alt 31. Mär 2003, 13:13
Zitat von Paul Jr.:
Es ist einfach und sauber... Du stellst via TDataBase getrennte Verbindungen zu jeweiliger Datenbank... und per entsprechende TDatasets (also TQuery oder TTable oder andere...) die an den besagten getrennten TDataBase ?hängen? öffnest Du zuerst die entsprechenden SQL-Tabellen (am besten Query als Quelle und TTable als Ziel)... dann läuftst Du die Quelle seqeuntiel durch und kopierst Du Datensatz für Datensatz in die ZIEL-Datenbank...
@Paul JR.:
deine Lösung ist nur dann nicht so einfach anwendbar, wenn sich die Struktur der zu kopierenden Tabelle von Zeit zu Zeit ändert. Das hätte ich schon dazu schreiben können. Sorry !
Dieser Fall kann in meiner Anwendung auftreten, weil die Quelltabelle aus Datenbank A dynamisch ist, es können also Attribute (Spalten) hinzugefügt werden (es handelt sich um eine andere Anwendung, die mit diesen dynamischen Tabellen arbeitet, kann ich leider nicht ändern !).
Die Interpration der (selten) hinzugefügten Attribute erfolgt dann in meiner Anwendung über eine separate Zuordnungstabelle. Das funzt auch schon problemlos.

Der gesamte Ablauf ist folgendermaßen gedacht:

  1. Fremdanwendung sitzt auf Access-Datenbank A, schreibt Daten in Tabelle1 und ändert auch deren Struktur.

  2. Import von Tabelle1 (Struktur und Daten) into Access-Datenbank B, auch wegen Datensicherung. Dieser Import muss übrigens nur in eine Richtung erfolgen.

  3. Meine Anwendung sitzt auf Datenbank B und verwendet die Daten der importierten Tabelle weiter, d.h. die Daten werden auf die bereits vorhandene Datenstruktur in Datenbank B verteilt. Diese Datenstruktur soll nicht geändert werden, da noch weitere Schnittstellen vorhanden sind.

Kurzum: Ich muss eine dynamisch erweiterbare Tabelle (Struktur+Inhalte) mit ADO von Datenbank A nach Datenbank B kopieren. Das muss doch auch einfacher gehen, als umständlich zwei Querys (dynamische Tabellenstruktur berücksichtigen !) zusammenzubasteln und Datensatz für Datensatz einzeln rüberschaufeln. Ich hatte auch schon überlegt, ob ich von Delphi aus eine Tabelle in Access importieren kann, quasi, als ob ich direkt die mdb öffne und manuell 'Tabelle importieren' wähle. Das wäre auch eine elegante Lösung...

Auf jeden Fall habe ich durch Eure bisherigen Antworten schon viel dazu gelernt. Und darum geht es letztlich...Danke !
  Mit Zitat antworten Zitat
Gast
(Gast)

n/a Beiträge
 
#12
  Alt 31. Mär 2003, 14:01
Hallo Nostromo73 8) ,

(...)
deine Lösung ist nur dann nicht so einfach anwendbar, wenn sich die Struktur der zu kopierenden Tabelle von Zeit zu Zeit ändert. Das hätte ich schon dazu schreiben können. Sorry !
(...)

Natürlich es gibt eine elegantere Lösung... ich mache es z.B. so... wenn ich mit einer Unbekannter- SQL- Struktur konfrontiert werde:

1.) Eine Datenbank wird ausgewählt
2.) Alle vorhandene Tabellen werden ausgelesen
3.) Eine Tabelle wird ausgewählt
4.) Aufbau der ausgewählten Tabelle wird analisiert und eine universelle (unabhängige) SQL- Tabellen Definition (also CREATE TABLE blabla, ... NOT NULL , Schlüssel etc...) wird generiert.
5.) Ziel Datenbank wird ausgwält (z.B. ORACLE oder Interbase etc...)
6.) In dem Ziel-Datenbak wird die neue (KLON) Tabelle erzeugt.
7.) Daten werden automatisch von Datenbak A in die Datenbank B kopiert

So...

Wünsche Dir viel Erfolg...


Gruß

Paul Jr.
  Mit Zitat antworten Zitat
nostromo73

Registriert seit: 24. Mär 2003
11 Beiträge
 
Delphi 7 Professional
 
#13
  Alt 31. Mär 2003, 14:22
Zitat:
4.) Aufbau der ausgewählten Tabelle wird analisiert und eine universelle (unabhängige) SQL- Tabellen Definition (also CREATE TABLE blabla, ... NOT NULL , Schlüssel etc...) wird generiert.
Danke für die schnelle Antwort !

Noch eine kleine Frage, dann habe ich endlich das nötige Know-How...
Gibt es eine Funktionalität in Delphi, die mir zu einer Tabelle direkt die SQL-Tabellendefintion mitsamt Primärschlüssel etc. und ausspuckt oder muss ich da etwa durch alle Spalten durchgehen und die Attributnamen einzeln an das "Create Table..." anhängen ?
  Mit Zitat antworten Zitat
Gast
(Gast)

n/a Beiträge
 
#14
  Alt 31. Mär 2003, 15:11
also dass ist schon etwas mühsam...dafür das Ergebnis lässt sich später sehen!

Man muss schon richtig den Aufbau einer Tabelle (also z.B. die Spalten durchgehen usw...) analisieren bzw. auslesen...

Dafür gibt’s z.B. TDataSet eigenschaften wie FieldDefs die Dir schon sehr viel verrät...

Ich habe aber schon auch die SQL- SYSTEM- Tabellen analisiert um an gewisse Informationen (wie z.B. Trigger) zu kommen... aber das ist zu unflexibel.. und schwierig (zeitaufwändig)...

Also noch einmal viel Erfolg

Gruß

Paul Jr.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 22:57 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