AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Übergabe von QRY-Tabelleninhalte an andere Connection
Thema durchsuchen
Ansicht
Themen-Optionen

Übergabe von QRY-Tabelleninhalte an andere Connection

Ein Thema von Gege · begonnen am 6. Jul 2023 · letzter Beitrag vom 7. Jul 2023
Antwort Antwort
Seite 1 von 2  1 2      
Gege

Registriert seit: 5. Sep 2011
Ort: Sachsen / Naunhof
77 Beiträge
 
Delphi XE7 Architect
 
#1

Übergabe von QRY-Tabelleninhalte an andere Connection

  Alt 6. Jul 2023, 15:35
Datenbank: MSSQL • Version: 2019 • Zugriff über: ADO
Hallo Leute

ich habe mal eine Frage , ich steh gerade etwas auf den Schlauch ^^
ich habe 2 connections eine zu einer informix tabelle (FDquery mit FDconnection) und ein ADOqry mit adoconnection zu einer MSSQL Datenbank/Tabelle ..
gibt es eigentlich eine elegantere Variante als
jedes Feld einzeln mit
qryvoncon1.fieldbyname('name').assstring:= qryvoncon2.fieldbyname('name').assstring ... etc
für alle Felder
wenn alle Felder bei beiden Tabellen gleich sind zu übergeben ?

hoffe habe mich verständlich ausgedrückt .. mit dem was ich meine ?!
bei größeren Tabellen ist das ganz schön aufwendig

Danke schon mal
Gerd
Gerd
  Mit Zitat antworten Zitat
Hobbycoder

Registriert seit: 22. Feb 2017
955 Beiträge
 
#2

AW: Übergabe von QRY-Tabelleninhalte an andere Connection

  Alt 6. Jul 2023, 15:47
Gelöscht...
Gruß Hobbycoder
Alle sagten: "Das geht nicht.". Dann kam einer, der wusste das nicht, und hat's einfach gemacht.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: Übergabe von QRY-Tabelleninhalte an andere Connection

  Alt 6. Jul 2023, 16:07
CopyFields
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Gege

Registriert seit: 5. Sep 2011
Ort: Sachsen / Naunhof
77 Beiträge
 
Delphi XE7 Architect
 
#4

AW: Übergabe von QRY-Tabelleninhalte an andere Connection

  Alt 6. Jul 2023, 16:14
hmm ok .. schau ich mir mal an .. Danke
Gerd
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.490 Beiträge
 
Delphi 7 Professional
 
#5

AW: Übergabe von QRY-Tabelleninhalte an andere Connection

  Alt 6. Jul 2023, 17:00
Such' bitte mal mit der Suchmaschine Deiner Wahl nach "delphi BatchMove".

In Delphi 7 gibt es aus den BDE-Zeiten noch die Komponente TBatchMove, da kann man Daten zwischen zwei Tabellen verschieben. Diese müssen sich aber nicht in der gleichen Datenbank befinden.

Devart Forums - Batchmove

FireDAC.Comp.BatchMove.TFDBatchMove

Using FireDac BatchMove with an Active Index on a Query
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#6

AW: Übergabe von QRY-Tabelleninhalte an andere Connection

  Alt 6. Jul 2023, 17:00
Wenn du selber kopierst, dann auch besser .Value anstatt .AsString verwenden.

* einmal für alles was kein String ist,
also nicht unnötig in einen String und wieder zurück umwandeln (z.B. Floats können verändert/ungenau werden)

* und auch bezüglich NULL, weil der String das NULL ja als '' raus giebt.




Oder alternativ innerhalb der Datenbanken bleiben, also die eine DB macht von sich auch ein SELECT in der anderen DB und holt sich die Daten rüber, bzw. schreibt dort drüben.
https://learn.microsoft.com/de-de/sq...l-server-ver16

Sowas können viele DBMS und nennen es z.B. DataLink oder Foreign Data Wrappers (FDW).
Das kann einmal eine Gruppe von Funktionen sein, so man ein SQL-Statement in der anderen DB ausführt
oder es können "virtuelle" Tabellen bei dir sein, die aber intern alles (Insert/Update/Select) zu einer Tabelle in der anderen DB weiterleiten.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu ( 6. Jul 2023 um 17:26 Uhr)
  Mit Zitat antworten Zitat
Papaschlumpf73

Registriert seit: 3. Mär 2014
Ort: Berlin
436 Beiträge
 
Delphi 12 Athens
 
#7

AW: Übergabe von QRY-Tabelleninhalte an andere Connection

  Alt 6. Jul 2023, 17:15
Sieh dir mal TDataSetProvider an.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.071 Beiträge
 
Delphi 12 Athens
 
#8

AW: Übergabe von QRY-Tabelleninhalte an andere Connection

  Alt 6. Jul 2023, 17:23
Dein XE7 ist schon ein bissl alt.

Aber grundsätzlich könnte man alternativ, z.B. im FireDAC, mit LocalDataSets arbeiten.
Da kannst'e in der einen QueryKomponente auf Inhalte von anderen Queries/DataSets oder sonstwelchen Komponenten (TEdit, TCheckBox, ...) zugreifen.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: Übergabe von QRY-Tabelleninhalte an andere Connection

  Alt 6. Jul 2023, 17:32
Vielleicht habe ich die Frage nicht richtig verstanden, aber es geht doch um die Felder eines Datensatzes und nicht um die gesamte Datenmenge, oder?
(emphasize be me)
gibt es eigentlich eine elegantere Variante als
jedes Feld einzeln mit
qryvoncon1.fieldbyname('name').assstring:= qryvoncon2.fieldbyname('name').assstring ... etc
für alle Felder
wenn alle Felder bei beiden Tabellen gleich sind zu übergeben ?
Weiterhin geht es hier offenbar um ADO und da bietet sich eine grundlegende TDataSet Funktionalität eher an als Komponenten eines anderen DAC. Bei entsprechender Flexibilität kann man das natürlich in Betracht ziehen, wenn denn die Batch-Funktionalität benötigt wird.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Delphi.Narium

Registriert seit: 27. Nov 2017
2.490 Beiträge
 
Delphi 7 Professional
 
#10

AW: Übergabe von QRY-Tabelleninhalte an andere Connection

  Alt 6. Jul 2023, 18:48
Es ist noch komplizierter:

Zwei Datenbanken zwischen denen über unterschiedliche Datenbankkomponenten kommuniziert werden soll.

Quelle = FireDac -> Ziel = ADO

bzw. umgekehrt.

Viele der BatchMovekomponenten wollen aber als Quelle und als Ziel 'nen Nachfolger von TDataSet, so dass die unterschiedlichen Datenbankkommponenten eigentlich "wurscht" sein sollten.

Nachfolger von TDataSet rein, Nachfolger von TDataSet raus.

Aus oben verlinktem StackOverFlow geklauter Source etwas angepasst und als ungetestete Idee gedacht:
Delphi-Quellcode:
var
  DataWriter: TFDBatchMoveDataSetWriter;
  DataReader: TFDBatchMoveDataSetReader;
  BatchMove: TFDBatchMove;
begin
  DataReader := nil;
  DataWriter := nil;
  BatchMove := nil;
  try
    DataReader := TFDBatchMoveDataSetReader.Create(nil);
    DataWriter := TFDBatchMoveDataSetWriter.Create(nil);
    BatchMove := TFDBatchMove.Create(nil);
    DataReader.DataSet := qryvoncon1;
    DataReader.Rewind := true;
    DataWriter.DataSet := qryvoncon2;
    BatchMove.Options := [poClearDestNoUndo, poCreateDest];
    BatchMove.Reader := DataReader;
    BatchMove.Writer := DataWriter;
    BatchMove.Execute;
  finally
    DataReader.Free;
    DataWriter.Free;
    BatchMove.Free;
  end;
end;
Lektüre dazu: FireDAC.TFDBatchMove Sample
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 14:30 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