AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Datenübertragung zwischen 2 Tabellen
Thema durchsuchen
Ansicht
Themen-Optionen

Datenübertragung zwischen 2 Tabellen

Ein Thema von Piro · begonnen am 17. Aug 2004 · letzter Beitrag vom 19. Aug 2004
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Piro
Piro

Registriert seit: 14. Jul 2003
Ort: Flintbek
810 Beiträge
 
Delphi XE2 Professional
 
#1

Datenübertragung zwischen 2 Tabellen

  Alt 17. Aug 2004, 14:25
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]
  Mit Zitat antworten Zitat
Benutzerbild von nailor
nailor

Registriert seit: 12. Dez 2002
Ort: Karlsruhe
1.989 Beiträge
 
#2

Re: DB Newbie - Wer weiß Rat.

  Alt 17. Aug 2004, 17:37
wenn ich dich recht verstanden habe, solte dir ein Tutorial zum Thema "Join"/"Joins" weiterhelfen
Michael N.
http://nailor.devzero.de/code/sharpmath/testing/ --- Tests, Feedback, Anregungen, ... aller Art sehr willkommen!
::: don't try so hard - it'll happen for a reason :::
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: DB Newbie - Wer weiß Rat.

  Alt 17. Aug 2004, 17:54
Ä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.
  Mit Zitat antworten Zitat
geesmith

Registriert seit: 17. Jan 2003
Ort: Frauenfeld
32 Beiträge
 
Delphi XE5 Architect
 
#4

Re: DB Newbie - Wer weiß Rat.

  Alt 17. Aug 2004, 19:15
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)
  Mit Zitat antworten Zitat
Benutzerbild von Piro
Piro

Registriert seit: 14. Jul 2003
Ort: Flintbek
810 Beiträge
 
Delphi XE2 Professional
 
#5

Datenübertrag zwischen zwei Tabellen

  Alt 19. Aug 2004, 08:00
@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
  Mit Zitat antworten Zitat
geesmith

Registriert seit: 17. Jan 2003
Ort: Frauenfeld
32 Beiträge
 
Delphi XE5 Architect
 
#6

Re: DB Newbie - Wer weiß Rat.

  Alt 19. Aug 2004, 09:27
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.
  Mit Zitat antworten Zitat
Benutzerbild von Piro
Piro

Registriert seit: 14. Jul 2003
Ort: Flintbek
810 Beiträge
 
Delphi XE2 Professional
 
#7

Re: DB Newbie - Wer weiß Rat.

  Alt 19. Aug 2004, 13:18
danke für deine Bemühungen. ich werde es gleich mal ausprobieren.

Kann man in der TTable Komponente auch mit SQL Anweisungen arbeiten?
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#8

Re: DB Newbie - Wer weiß Rat.

  Alt 19. Aug 2004, 13:23
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.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Piro
Piro

Registriert seit: 14. Jul 2003
Ort: Flintbek
810 Beiträge
 
Delphi XE2 Professional
 
#9

Re: DB Newbie - Wer weiß Rat.

  Alt 19. Aug 2004, 13:28
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.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#10

Re: DB Newbie - Wer weiß Rat.

  Alt 19. Aug 2004, 13:30
Dann sag einfach einem admin bescheid uns teile ihm den neuen gewünschten titel mit
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  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 07:42 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