Ich wollte ein Beispiel, zum übernehmen von Daten aus
Access in ein Stringgrid, ausprobieren.
Das Beispiel ist von TMS für die AdvStringGrid Komponenten.
Dabei kommt der Fehler "ungültige Parameteranzahl" beim Aufruf von "adofield := adoset.fields(i);".
adofield ist ein Variant.
Code:
Procedure LoadFromADO(sg: TAdvStringGrid; mdb, table: String);
Var
adoset: variant;
adoconn: variant;
adofield: variant;
i, j: integer;
Begin
adoconn := CreateOLEObject('ADODB.Connection');
adoconn.Open('driver={Microsoft
Access Driver (*.mdb)};dbq=' + mdb);
adoset := adoconn.Execute('SELECT * FROM ' + table);
sg.colcount := adoset.fields.count + 1;
For i := 1 To adoset.fields.count - 1 Do
Begin
adofield := adoset.fields(i);
sg.cells[i, 0] := adofield.Name;
End;
j := 1;
While Not adoset.EOF Do
Begin
If (j > sg.rowcount) Then
sg.rowcount := sg.rowcount + 1;
For i := 1 To adoset.fields.count - 1 Do
Begin
adofield := adoset.fields(i);
sg.cells[i, j] := adofield.Value;
End;
adoset.MoveNext;
inc(j);
End;
adoset := unassigned;
End;
Ich möchte mich mit dem direkten ansprechen des adodatasets beschäftigen, wo finde ich dazu nähere Informationen.
Das Beispiel habe ich mit Delphi2010 ausprobiert, vielleicht hat es damit etwas zu tun ?