Entwickler-Ecke

Datenbanken - Auf Auswahl im DBGrid reagieren


sunday_2 - Di 19.11.02 13:28
Titel: Auf Auswahl im DBGrid reagieren
Hi Leute,

Ich habe folgendes Prob:

Ich habe ein DBGrid welches mir mit einem Query
Daten ausgibt. select distinct speichername  as Öffnen_der_Konfiguration from Event

Wie Ihr seht, gibt es in Speichername mehrere gleiche Einträge, die jedoch nur einmal angezeigt werden. Ich möchte nun, das der User ein Feld anklickt (z.B. Obi Nr 2) und der Cursor in der Tabelle auf den ersten Datensatz springt der im Feld Speichername den Eintrag 'Obi Nr 2' hat.

Ick krieg dat irchendtie net offe Kette :shock:


LCS - Di 19.11.02 13:47

Hi
sunday_2 hat folgendes geschrieben:

Ich möchte nun, das der User ein Feld anklickt (z.B. Obi Nr 2) und der Cursor in der Tabelle auf den ersten Datensatz springt der im Feld Speichername den Eintrag 'Obi Nr 2' hat.

In welcher Tabelle? Ist das ne zweite Tabelle mit den Gesamtdaten oder meinst du damit die Query?

Wenn du damit die Query meinst: Geht net.
Wenn du ne zweite Tabelle meinst und der Eintrag indiziert ist, könntest du FindFirst um auf dem ersten Eintrag zu positionieren.
Dritte Möglichkeit wäre, mit einer zweiten Query nur die Datensätze mit dem entsprechenden Eintrag zu lesen.

Gruss Lothar


sunday_2 - Di 19.11.02 15:25

Hi Lothar,

ich versuche grade deine dritte Variante.
Zitat:

Dritte Möglichkeit wäre, mit einer zweiten Query nur die Datensätze mit dem entsprechenden Eintrag zu lesen.

Leider klappt das nicht. Im Query habe ich geschrieben:

Quelltext
1:
2:
Select * from Event 
where (speichername = '''+dbg_oeffnen.SelectedField.Text+''')

Im Quellcode dann

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
Query2.Active:=true;
              Query2.First;
              for i:=1 to 23 do
              for j:= 1 to 9 do
              begin
                 tormatrix[i,j].Name := Query2.FieldByName('Feldname').asString;
                 temp := Query2.FieldByName('Farbe').asString;
                 tormatrix[i,j].Color := MColor[StrToInt(temp)];
                 Query2.Next;
              end;

Es funktioniert aber nicht. Als Fehlermeldung sagt er mir "Keine gültige Integervariable. Das sagt mir, das das Query nicht gefüllt wird.
Was mach ich falsch???


LCS - Di 19.11.02 15:39

Hi
hast du die SQL-Anweisung für Query2 direkt so wie sie da steht im Objektinspektor eingetragen? Dann kanns allerdings net funktionieren.

Schreib die SQL mal so:

Quelltext
1:
Select * from Event where (speichername = :Auswahl)                    


und dann im Code:

Quelltext
1:
2:
3:
Query2.ParamByName(Auswahl).Value := dbg_oeffnen.SelectedField.Text;
Query2.Active:=true; 
 usw...


Gruss Lothar


sunday_2 - Di 19.11.02 16:51

Hi Lothar,

hat super geklappt. Vielen Dank! :P