AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Kopieren von TADOTable
Thema durchsuchen
Ansicht
Themen-Optionen

Kopieren von TADOTable

Ein Thema von Snake · begonnen am 5. Nov 2002 · letzter Beitrag vom 5. Nov 2002
Antwort Antwort
Snake

Registriert seit: 17. Okt 2002
2 Beiträge
 
#1

Kopieren von TADOTable

  Alt 5. Nov 2002, 13:19
Hallo,
ich benötige wieder einmal eure Hilfe.
Mein Problem diesmal:

Ich habe 2 TADOConnection und will eine Tabelle aus der 'QuellConnection' in die 'ZielConnection' kopieren (incl. aller Daten). Gibt es eine (einfache) Möglichkeit (ähnlich wie bei TTable.TableCreate)????

Schon mal vielen Dank
Snake
  Mit Zitat antworten Zitat
Benutzerbild von MrSpock
MrSpock
(Co-Admin)

Registriert seit: 7. Jun 2002
Ort: Owingen
5.865 Beiträge
 
Delphi 2010 Professional
 
#2
  Alt 5. Nov 2002, 13:51
Hallo Snake,

schau dir doch einmal die Komponente Batchmove an, die sollte dein Problem lösen.
Albert
Live long and prosper


MrSpock
  Mit Zitat antworten Zitat
Gast
(Gast)

n/a Beiträge
 
#3
  Alt 5. Nov 2002, 14:35
Hallo Snake, 8)

vielleicht hilft Dir dies hier....

Diese Prozedur ist in der Lage gezielt nur bestimmte Felder eines Datensatzes kopieren

...hier alle Felder bis auf zwei die nicht mitkopiert werden sollten:

QueryTableCopy(Query1, Table1, ['ID', 'AENDDATUM'];

oder alle Felder:

QueryTableCopy(Query1, Table1, [];

Natürlich die Hauptaufgabe ist hier ALLE Datensätze die in der Query vorhanden sind zu kopieren…

Gruß

Paul Jr.



Delphi-Quellcode:
(* Komplete SQL-Tabellen kopieren!!!

    TQuery (Quelle) in die TTable (Ziel) kopieren.
    Hier werden NUR gleiche Felder von Querry in die Tabelle kopiert...
    Aber NUR bis auf verbotene Felder (z.B. ID's und ÄnderungsDatum 'AENDDATUM'
    sollen nicht mitkopiert werden
    und dies ist so zu programmieren (Beispiel):

    QueryTableCopy(Query1, Table1, ['ID', 'AENDDATUM'];

      *)

PROCEDURE QueryTableCopy(Query : TQuery; Tabelle : TTable; VerboteneFelder : ARRAY OF STRING);
VAR
   Index : Integer; // für VerboteneFelder
   IndexTable : Integer;
   IndexQuery : Integer;
   bVerboten : Boolean;
BEGIN
   IF NOT Query.Active THEN
      Query.Open;

   IF Query.EOF THEN
      BEGIN
         Query.First;
         IF Query.EOF THEN
            Exit;
      END;

   IF NOT Tabelle.Active THEN
      BEGIN
         Tabelle.Open;
         Tabelle.Append;
      END
   ELSE
      IF Tabelle.State <> dsInsert THEN
         BEGIN
            Tabelle.Cancel;
            Tabelle.Append;
         END;

   WHILE NOT Query.EOF DO
      BEGIN
         IF Tabelle.State <> dsInsert THEN
            Tabelle.Append;
            TRY
               FOR IndexTable := 0 TO Tabelle.FieldCount - 1 DO
                  FOR IndexQuery := 0 TO Query.FieldCount - 1 DO
                     IF CompareText(Tabelle.Fields[IndexTable].FullName,
                                                 Query.Fields[IndexQuery].FullName) = 0 THEN
                        BEGIN // kopiere, aber bis auf verbotene Felder (z.B. ID's sollen nicht kopiert werden
                           bVerboten := FALSE;
                           FOR Index := Low(VerboteneFelder) TO High(VerboteneFelder) DO
                              IF CompareText(Tabelle.Fields[IndexTable].FullName,VerboteneFelder[Index]) = 0 THEN
                                 bVerboten := TRUE;
                           IF NOT bVerboten THEN
                              Tabelle.Fields[IndexTable].Assign(Query.Fields[IndexQuery]);
                        END;
               Tabelle.CheckBrowseMode;
               Tabelle.Cancel;
            EXCEPT
               Tabelle.Cancel;
               RAISE;
            END;
         Query.Next;
      END;
END;
  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 21:55 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