Autor Beitrag
valherf
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 26



BeitragVerfasst: Di 08.02.11 22:56 
Hallo,

ich habe ein DBGrid, in dem ich in einer Spalte verschiedene Zahlen (auch mehrfach die selbe) stehen habe. In der zweiten spalte stehen Namen.
Wie kann ich alle Namen ausgeben, die beispielsweise der Zahl "4" zugeordnet sind? Am besten in einem Memo?
bummi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1248
Erhaltene Danke: 187

XP - Server 2008R2
D2 - Delphi XE
BeitragVerfasst: Di 08.02.11 23:55 
Du läufst über das Dataset und gibst die Werte bedingt aus, Pseudocode
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
Dataset.First;
While not Dataset.EOF do
  begin
            If Dataset.FieldByName('mußt du kennen').asInteger=4 then Memo1.Lines.Add(Dataset.FieldByName('Das andere Feld') .asString)
            Dataset.Next;
  end;


oder Du setzt einen Filter (oder fragst per Query für Bedingung ab) und gibst alles aus.

_________________
Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS

Für diesen Beitrag haben gedankt: valherf
valherf Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 26



BeitragVerfasst: Mi 09.02.11 11:57 
Ja, das hat Prima geklappt...
Jetzt will ich allerdings noch einen drauf setzen.

Und zwar soll er nun den namen den er findet (auch eine Zahl) in der nächsten Tabelle wieder einfügen und den dazu gehörigen wert (nur einer pro zahl) im Memo 2 ausgeben.

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
suche:=dblookupcombobox1.KeyValue;
dblookupcombobox2.KeyValue:=suche;
ADOtable2.First;
While not ADOTable2.EOF do
  begin
    If ADOtable2.FieldByName('SchauspielerID').asInteger=strtoint(suche)
    then
    Memo1.Lines.Add((ADOtable2.FieldByName('RollenID') .asString));
    rolle:=(ADOtable2.FieldByName('RollenID') .asString);
    If ADOtable3.FieldByName('RollenID').asInteger=strtoint(rolle)
    then
    begin
    Memo2.Lines.Add(ADOtable3.FieldByName('Rollenname') .asString);
    ADOtable3.Next;
    end;
    ADOtable2.Next;
  end;


so gibt er zwar etwas aus, aber völlig irrelevante Rollennamen...
bummi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1248
Erhaltene Danke: 187

XP - Server 2008R2
D2 - Delphi XE
BeitragVerfasst: Mi 09.02.11 12:05 
da fehlt wohl ein ADOtable3.Locate, oder eine Masterdetailverknüpfung, oder ein Lookupfeld auf den Rollennamen

_________________
Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS
valherf Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 26



BeitragVerfasst: Mi 09.02.11 13:19 
und was schreib ich zu dem Locate?
bin verwirrt! :D
bummi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1248
Erhaltene Danke: 187

XP - Server 2008R2
D2 - Delphi XE
BeitragVerfasst: Mi 09.02.11 14:44 
ausblenden Delphi-Quelltext
1:
  If ADOtable3.Locate('RollenID',ADOtable2.FieldByName('RollenID').asInteger) then ADOtable3.FieldByName('Rollenname').asString					


Du kannst auch ADOtable2 "Neues Feld" wählen, einen Namen vergeben Typ Nachschlage eintragen, Schlüsselfeld auf RollenID legen Datenmenge auf ADOtable3, Schlüssel auf RollenID und Ergebnisfeld auf Rollenname, dann kannst Du den Namen direkt aus AdoTable2 nehmen.

BTW: Schau Dir mal ADODataset an, die Möglichkeiten sind deutlich interessanter als bei ADOTable.

_________________
Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS

Für diesen Beitrag haben gedankt: valherf
valherf Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 26



BeitragVerfasst: Mi 09.02.11 15:38 
Würde ich machen, wenn die Zeit mir nicht im Nacken sitzen würde.

da sind übrigens nicht genügend wirkliche Parameter drin, im code??
bummi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 1248
Erhaltene Danke: 187

XP - Server 2008R2
D2 - Delphi XE
BeitragVerfasst: Mi 09.02.11 18:44 
ausblenden Delphi-Quelltext
1:
ADOtable3.Locate('RollenID',ADOtable2.FieldByName('RollenID').asInteger,[])					

oder einfach mal F1 drücken

_________________
Das Problem liegt üblicherweise zwischen den Ohren H₂♂
DRY DRY KISS

Für diesen Beitrag haben gedankt: valherf