Autor Beitrag
opfer.der.genauigkeit
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 754
Erhaltene Danke: 1



BeitragVerfasst: Di 28.01.03 15:59 
Ich hab ne Datenbankabfrage auf ein DBGrid um dort Datenbankfelder anzuzeigen.
Ich möchte nun in diesem DBGrid direkt auf die vorhandenen Felder des GRIDS gehen und diese lesen.

Ich habe schon ein paar Varianten probiert...
Also über die Query in die Datenbank...
Aber das Ergebnis ist nicht zu gebrauchen, da ich die Felder mit einem Pointer an einen Record übergebe und dann über Pointer von dort aus in ein anderes Formular übergebe.
Und da ich bei diesen Vorgang nur bestimmte Werte brauche, die nur im Grid vorkommen, und nicht alle Werte aus der Query, suche ich nun bei euch Antwort.

Die Funktion FieldCount-1 vom Grid geht bei mir nicht...
Vielleicht kann mir auch da jemand weiterhelfen.

Warum ich keine DBFelder benutze und die dann dem anderen Formular nur die ID übergebe... gute Frage... ich brauch ne Herausforderung. :wink:

_________________
Stellen Sie sich bitte Zirkusmusik vor.
opfer.der.genauigkeit Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 754
Erhaltene Danke: 1



BeitragVerfasst: Di 28.01.03 16:44 
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
  anker := nil;
    for i := 0 to tsDBGrid1.FieldCount-1  do begin  //funzt net
    {for i := 0 to OEQuery1.FieldCount-1 do begin} //funzt
        new(p1);
        p1^.txt := tsDBGrid1.Field[i].Asstring; //funzt net
        {p1^.txt := OEQuery1.Fields[i].AsString;} //funzt
        p1^.next := nil;
        if anker = nil then
          anker := p1
        else
          begin
            p2 := anker;
            while (p2^.next <> nil) do
              p2 := p2^.next;
            p2^.next := p1;
          end;


Jetzt stellt euch noch n Grid und nen Record dazu vor.
Das soll die Routine sein, mit der ich aus dem Grid lese...
Der alte Code funktioniert... nützt mir aber nix.

_________________
Stellen Sie sich bitte Zirkusmusik vor.
smiegel
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 992
Erhaltene Danke: 1

WIN 7
D7 Prof., C#, RAD XE Prof.
BeitragVerfasst: Di 28.01.03 16:54 
Hallo,

@opfer.der.genauigkeit
Anscheinend begehst Du einen Denkfehler. Das Grid ist nur der Anzeigecontainer für eine Table oder eine Query.
Wenn Du auf die darunterliegenden Daten zugreifen willst, musst die Eigenschaft Datasource.Dataset bemühen.

Folgend ein Beispiel, aus der Delphi-Hilfe:
Zitat:

Das folgende Beispiel kopiert markierte Zeilen eines DB-Gitters in ein Listenfeld.
ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
procedure TForm1.Button1Click(Sender: TObject);
var
  i, j: Integer;
  s: string;
begin
  if DBGrid1.SelectedRows.Count>0 then
    with DBGrid1.DataSource.DataSet do
    for i:=0 to DBGrid1.SelectedRows.Count-1 do
      begin
        GotoBookmark(pointer(DBGrid1.SelectedRows.Items[i]));
        for j := 0 to FieldCount-1 do
        begin
          if (j>0) then s:=s+', ';

          s:=s+Fields[j].AsString;
        end;
        Listbox1.Items.Add(s);
        s:= '';
      end;
end;


_________________
Gruß Smiegel
Ich weiß, daß ich nichts weiß, aber ich weiß mehr als die, die nicht wissen, daß sie nichts wissen. (Sokrates)
opfer.der.genauigkeit Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 754
Erhaltene Danke: 1



BeitragVerfasst: Di 28.01.03 17:10 
smiegel hat folgendes geschrieben:

Wenn Du auf die darunterliegenden Daten zugreifen willst, musst die Eigenschaft Datasource.Dataset bemühen.


Diese Antwort hatte ich befürchtet *g*, ist der gleiche Zugriff als würde ich über die Query gehen bzw. es ist eigentlich genau das, der Code greift auch direkt auf die Query zurück.
Bringt mir also auch nix. Trotzdem danke. :)

Die Daten müßen sich ja irgendwo in der Schwebe im Grid befinden... genau diese Daten möchte ich haben.

P.S.: Den Code in der Hilfe hab ich auch schon durchgelesen. *GGG*

_________________
Stellen Sie sich bitte Zirkusmusik vor.
opfer.der.genauigkeit Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 754
Erhaltene Danke: 1



BeitragVerfasst: Di 28.01.03 17:41 
Ok Leude hat sich erledigt.

Wenn ich es über die Query mache und die SQL- Abfrage umstelle funktioniert das auch was ich will. :)

_________________
Stellen Sie sich bitte Zirkusmusik vor.