![]() |
Datenübertragung zwischen 2 Tabellen
Moin bin neu auf diesem Gebiet.
Ich habe zwei Tabellen (Statistik.dbf und Spieltage.dbf). Beide Tabellen haben eine fortlaufende ID, die in den Tabellen gleich ist. Jetzt möchte ich die Daten aus der Spieltage.dbf in die Statistik.dbf übertragen in Abhängigkeit der ID. So das ich nicht die ganze Tabellen durchsuchen muss ob die ID stimmt und dann den Datensatz übertragen kann. Gibt es irgendeine Möglichkeit dieses Problem zu realisieren. Ihr würdet mir echt helfen. Danke im voraus. Sven [edit=MrSpock]Titel gemäß Wunsch geändert. Mfg, MrSpock[/edit] |
Re: DB Newbie - Wer weiß Rat.
wenn ich dich recht verstanden habe, solte dir ein Tutorial zum Thema "Join"/"Joins" weiterhelfen
|
Re: DB Newbie - Wer weiß Rat.
Ändere bitte deinen Titel!
"DB Newbie - Wer weiß Rat." sagt absolut nichts über dein problem aus. Wenn du Hilfe benötigst, wird dir am ehesten geholfen, wenn du einen aussagekräftigen Titel verwendest. |
Re: DB Newbie - Wer weiß Rat.
Hi daywalker299
Leider ist dein Problem etwas ungenau beschrieben. Entweder du willst ganze Datensätze in die Statistik-Tabelle übertragen oder bestehende Datensätze der Statistik-Tabelle mit bestimmten Datenfelder der Spieltage-Tab ergänzen. ungefähr ist nur grad ausm Kopf...je nachdem was du willst Fall 1: INSERT INTO Statistik(feld1,feld2,feld3...) SELECT feld1,feld2,feld3 FROM Spieltage WHERE EXISTS(SELECT 1 FROM Statistik WHERE Spieltage.ID = Statistik.ID) Fall 2: UPDATE Statistik SET Statistik.feld1 = (Select Spieltage.feld1 FROM Spieltage WHERE Spieltage.ID = Statistik.ID) |
Datenübertrag zwischen zwei Tabellen
@geesmith
Genauso in der Art sollen die Daten übertragen werden. Mir reicht aber das Updaten von ganzen Datensätzen. Das Problem was ich jetzt aber noch habe, ist, dass ich nicht mit SQL arbeite sondern das normal TDataSet benutze. Wie funktioniert das dann? Wäre auch dankbar für ein Tutorial indem ich mir das Wissen aneignen kann. Danke |
Re: DB Newbie - Wer weiß Rat.
Ok, also das ist jetzt einfach so ausm Kopf ...so würd ich das wohl machen... hoffe es funkt auch.
Delphi-Quellcode:
type TSpieltageRecord = record
field1:String; field2:String; .. . end; var AExistsIDStatistik:Array of Integer; AExistsIDSpieltage:Array of Integer; SpieltageRecord:TSpieltageRecord Found:Boolean; i,i2:Integer; i := 0; // ID's der Tabelle Statistik auslesen Query.SQL.Text := 'SELECT ID FROM Statistik'; Query.Active := True; SetLength(AExistsIDStatistik,Query.RecordCount); Query.First; While not Query.Eof do begin AExistsIDStatistik[i] := Query.FieldByName('ID').asInteger; Inc(i); Query.Next; end; Query.Active := False; // ID's der Tabelle Spieltage auslesen Query.SQL.Text := 'SELECT ID FROM Spieltage'; Query.Active := True; SetLength(AExistsIDSpieltage,Query.RecordCount); Query.First; While not Query.Eof do begin AExistsIDSpieltage[i] := Query.FieldByName('ID').asInteger; Inc(i); Query.Next; end; Query.Active := False; // Prüfen ob die ID existiert For i := 0 to Length(AExistsIDSpieltage)-1 do begin Found := False; For i2 := 0 to Length(AExistsIDStatistik)-1 do If AExistsIDSpieltage[i] = AExistsIDStatistik[i2] then Found := True; If Found then begin // Aufruf der Daten Query.SQL.Text := 'SELECT * FROM Spieltage WHERE ID='+IntToStr(ID); Query.Active := True; SpieltageRecord.field1 := Query.FieldByName('field1').asString; SpieltageRecord.field2 := Query.FieldByName('field2').asString; Query.Active := False; // Update des Satzes Query.SQL.Text := 'UPDATE Statistik SET field1 = '+QuotedStr(SpieltageRecord.field1)+','+ field2 = '+QuotedStr(SpieltageRecord.field2)+ ' WHERE ID = '+IntToStr(AExistsIDSpieltage[i]); Query.ExecSQL; end; end; Wobei das dann schon ein viel gröserer Aufwand ist als einfach das einmalige SQL-Update Statement abzusetzen, zumal deine Absicht ja auch einmalig ist. |
Re: DB Newbie - Wer weiß Rat.
danke für deine Bemühungen. ich werde es gleich mal ausprobieren.
Kann man in der TTable Komponente auch mit SQL Anweisungen arbeiten? |
Re: DB Newbie - Wer weiß Rat.
Also ich wieß nicht wievielen es noch so geht wie mir, aber ich lese deine Frage gar nicht erst durch weil ich anhand des Titels gar nicht weiß worum es geht. Inzwischen wurdest du schon aufgefordert den Titel zu ändern was du nicht gemacht hast, irgendwie widerstrebt es mir da auch jemanden weiterzuhelfen wenn sowas wie titel ändern nicht mal für nötig gehalten wird...
Einfach mal titel ändern und vielleicht hilft dir dann der ein oder andere mehr bei deinem problem. |
Re: DB Newbie - Wer weiß Rat.
Ich kann den Titel nicht mehr ändern sonst hätte ich es doch schon gemacht. Bzw kann mir ja einer sagen wie, denn bei kommt immer nur die Meldung, das es aus zeitlichen Gründen nicht mehr geht.
|
Re: DB Newbie - Wer weiß Rat.
Dann sag einfach einem admin bescheid uns teile ihm den neuen gewünschten titel mit
|
Re: DB Newbie - Wer weiß Rat.
@Administrator
Aufgrund zeitlicher Probleme kann ich nicht mehr den Titel dieses Beitrags ändern. Er ist wirklich nicht passend gewählt. Bitte ändert ihn in "Datenübertrag zwischen zwei Tabellen". Danke |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:19 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz