Also das mit dem
MySQL direct scheint ganz gut zu klappen. Aber ich bräuchte nochmal Hilfe:
was macht dieser Code-Abschnitt
Delphi-Quellcode:
cr := FResult.RecNo;
StringGrid2.RowCount := FResult.RowsCount+1;
StringGrid2.ColCount := FResult.FieldsCount+1;
for i:=0 to FResult.FieldsCount-1 do begin
af := FResult.FieldDef(i)^;
StringGrid2.cells[i+1,0] := af.Name;
end;
FResult.First;
for i:=0 to FResult.RowsCount-1 do begin
if FResult.RecNo=cr then
StringGrid2.Cells[0,i+1] := '*'
else
StringGrid2.Cells[0,i+1] := '';
Leider steht nirgends beschrieben, was FResult.RecNo genau ist
FResult.FieldDef(i) markiert den Datensatz i, würde ich jetzt denken.
Delphi-Quellcode:
for i:=0 to FResult.FieldsCount-1 do begin
af := FResult.FieldDef(i)^;
StringGrid2.cells[i+1,0] := af.Name;
end;
Bedeutet dann dieser Abschnitt, dass die komplette erste Spalte des Dynasets in die erste Zeile des Stringgrids eingetragen wird? Wenn ja, warum?
Dieser Quellcode soll ja das Ergebnis einer Abfrage in ein Stringgrid übertragen.
Aber warum reicht dafür nicht folgender Code:
Delphi-Quellcode:
for i:=0 to FResult.FieldsCount-1 do begin
for j:=0 to FResult.FieldsCount-1 do
StringGrid2.Cells[j+1,i+1] := FResult.FieldValue(j);
FResult.Next;
Und noch eine Frage:
Ich will die Sache ja in ein DataModule auslagern. Also möchte ich dann im Formular eine Function aufrufen, im DataModule die Abfrage machen und dann das Dynaset an das Formular zurückgeben. Aber wie? Ne Funktion als Array machen? Geht das?
Oder könnte / müsste ich dann quasi den Abschnitt zum Übertragen ins Formular mit eintragen und dann z.B.
StringGrid2.Cells[j+1,i+1] := DataModule.FResult.FieldValue(j);
schreiben?