AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Spalten kopieren

Ein Thema von Susanne · begonnen am 22. Mär 2005 · letzter Beitrag vom 23. Mär 2005
Antwort Antwort
Susanne

Registriert seit: 21. Mai 2004
Ort: Lage
232 Beiträge
 
Delphi 2005 Professional
 
#1

Spalten kopieren

  Alt 22. Mär 2005, 16:37
Datenbank: SQLServer • Zugriff über: ADOQuery
Hallo,

ich habe zwei Datenbanken: DB1 und DB2 mit verschiedenen Tabellen
nun möchte ich aus der DB1 aus der Tabelle1 die Spalte 5 z.B. in die DB2 in die Tabelle1 in die Spalte5 kopieren. Beide sind eigentlich identisch, einziger Unterschied kann sein, dass die Datentypen sich in der ZielTabelle geändert haben. Die Zuordnung zum Index soll auch erhalten bleiben

Wie mache ich das am besten. Ich wollte die beiden DBs jeweils über über eine ADOQuery ansprechen, nur bleibt jetz die frage, wie mache ich das Kopieren von bestimmten Spalten aus der ersten Tabelle in die zweite Tabelle, zuordnungen zum Index der ersten Tabelle müssen auch so in der Tabelle sein, in die sie hineinkopiert werden.

Jemand eine gute Idee?
Susanne
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.016 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#2

Re: Spalten kopieren

  Alt 23. Mär 2005, 08:53
Hi Susanne,

du könntest es folgendermaßen bewerkstelligen (imho ist eine ADOQuery nur unidirektional, deshalb das DataSet):

Delphi-Quellcode:
while not QuellQuery.Eof do
begin
  ZielDataSet.Locate('ID', QuellQuery.FieldValues['ID'], []);
  ZielDataSet.Edit;
  ZielDataSet.FieldByName('Spalte5').AsString := QuellQuery.FieldByName('Spalte5').AsString;
  ZielDataSet.Post;
  QuellQuery.Next;
end;
MfG
Stevie
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Susanne

Registriert seit: 21. Mai 2004
Ort: Lage
232 Beiträge
 
Delphi 2005 Professional
 
#3

Re: Spalten kopieren

  Alt 23. Mär 2005, 09:34
so, bisher hab ich nun folgende Lösung gefunden:


Delphi-Quellcode:
sql:= 'Select ' +QuellIndex+', '+ QuellSpalten+' from '+ QuellTabelle;
   sql2:= 'Insert into ' +ZielTabelle+ ' ('+ZielIndex+','+ZielSpalten+')' +sql;
   ShowMessage(sql2);
   form1.ADOZiel.SQL.Clear;
   form1.ADOZiel.SQL.Add(sql2);
   form1.ADOZiel.ExecSQL;
Dies funktioniert solange, wie die ZielTabelle leer ist, aber sobald es schon einen Eintrag mit dem Index gibt, kracht es.

Ich müsste also irgendwie die QuellTabelle durchgehen von vorne bis hinten und gucken ob der Index schon in der ZielTabelle exitiert, wenn nicht kann ich es machen wie oben, aber wenn er schon exitiert, dann mache ich das wie bei dir?

wie krieg ich das denn jetzt zusammen?
Susanne
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.016 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#4

Re: Spalten kopieren

  Alt 23. Mär 2005, 09:45
Oder so:
Delphi-Quellcode:
while not QuellQuery.Eof do
begin
  if ZielDataSet.Locate('ID', QuellQuery.FieldValues['ID'], []) then
    ZielDataSet.Edit
  else
  begin
    ZielDataSet.Append;
    ZielDataSet.FieldByName('ID').AsString := QuellQuery.FieldByName('ID').AsString;
  end;
  ZielDataSet.FieldByName('Spalte5').AsString := QuellQuery.FieldByName('Spalte5').AsString;
  ZielDataSet.Post;
  QuellQuery.Next;
end;
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  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 18:46 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