Entwickler-Ecke
Datenbanken - Vergleich zweier Datenbanken in Feldern !
Jagg - Mi 04.12.02 14:37
Titel: Vergleich zweier Datenbanken in Feldern !
Hallo !
Ich habe eine Tabelle (Bestell.dbf) und eine (Material.dbf) !
In beiden Tabellen ist das Feld (ArtNr) enthalten !
In die (Bestell.dbf) schreibe ich den Wert für das Feld (ArtNr) hinein !
In der (Material.dbf) sind noch zusätzlich zu dem Feld (ArtNr),noch die Felder (Wieviel),(Einheit) und (WasDenn) enthalten !
Mein Problem :
Ich suche in der (Bestell.dbf) nach dem Feld (ArtNr) !
Die Werte soll er mit der Tabelle (Material.dbf) vergleichen und ausgegeben soll (ArtNr),(Wieviel),(Einheit) und (WasDenn) !
Beispiel :
Bestell.dbf : Im Feld steht ArtNr = 100 !
Suche in Material.dbf im Feld ArtNr den Wert 100 !
Wenn gefunden,dann ausgeben Wert von (Wieviel),(Einheit) und (WasDenn),die zu "ArtNr" gehören ! (also,in derselben Zeile sind !)
Habt ihr eine Idee ?
Jagg !
Andi1982 - Do 05.12.02 08:50
hallo,
ich arbeite zwar mit DB2, aber bei dir müsste es genauso gehen:
Quelltext
1: 2: 3:
| SELECT ArtNr, WieViel, Einheit, WasDenn FROM Bestell.dbf T1, Material.dbf T2 WHERE T1.ArtNr = T2.ArtNr; |
So sollte es gehen, natürlich arbeitet er das dann für jede Zeile der Tabelle Bestell.dbf durch. Es kann also vorkommen dass er mehrere Rows als Result zurück bekommt.
Gruß Andi
Jagg - Do 05.12.02 11:13
ich arbeite aber mit Table und nicht SQL !
ist es mit SQL besser ?
Wie geht das mit Table ???
Jagg !
LCS - Do 05.12.02 11:58
Ja geht auch mit Tabellen. Du brauchst dazu eine Datasource an deiner Tabelle Bestell.
Die Eigenschaft MasterSource deiner Tabelle Material setzt du auf diese Datasource. Anschliessend legst du über die Eigenschaft MasterFields fest über welche Felder die Verbindung zwischen den beiden Tabellen hergestellt wird. In deinem Fall ArtNr.
Wenn du nun in der Tabelle Bestell einen Datensatz auswählst, werden automatisch in der Tabelle Material der dazugehörende Datensatz ausgewählt.
Gruss Lothar
Jagg - Fr 06.12.02 13:33
Das ist meine Antwort !
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49:
| if Key = VK_F3 then begin T.DatabaseName := 'C:\BiBA\Mail\'; T.TableName := 'Bestell.dbf'; T.Open; for i := 1 to 40 do begin if TE[i].Text<>'' then begin T.Append; T.FieldByName('ArtNr') .AsInteger := StrToInt(L1[i].Caption); T.FieldByName('Wieviel').AsInteger := StrToInt(TE[i].Text); T.Post; end; end; Form3.Memo1.Clear; TB := TTable.Create(form11); TB.DatabaseName := 'C:\BiBA\Mail'; TB.TableName := 'Bestell.dbf'; TM := TTable.Create(form11); TM.DatabaseName := 'C:\BiBA\Mail'; TM.TableName := 'Material.dbf'; TM.Open; TB.Open; TB.First; TM.SetKey; TM.First; while not TB.eof do begin TM.TableName := 'Material.dbf'; if TM.FieldByName('ArtNr').AsString = TB.FieldByName('ArtNr').AsString then begin if Length(TB.FieldByName('Wieviel').AsString) = 1 then y := ' '; if Length(TB.FieldByName('Wieviel').AsString) = 2 then y := ' '; if Length(TB.FieldByName('Wieviel').AsString) = 3 then y := ''; Form3.Memo1.Lines.Add(y+TB.FieldByname('Wieviel').AsString+' '+TM.FieldByname('Einheit').AsString +' '+TM.FieldByname('WasDenn').AsString); TB.Next; TM.First; end else TM.Next; end; Close; Form3.Memo1.SetFocus; end; |
Jagg !
LCS - Fr 06.12.02 14:02
Hi
| Jagg hat folgendes geschrieben: |
Das ist meine Antwort !
|
Um ehrlich zu sein, versteh ich nicht was du uns damit sagen willst :nixweiss:
Gruss Lothar
Jagg - Fr 06.12.02 20:07
hehe ich auch nicht aber naja man lebt nur einmal ! ;)))))))))))))))))
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!