Einzelnen Beitrag anzeigen

Benutzerbild von Smiley
Smiley

Registriert seit: 9. Dez 2004
Ort: Gedern
205 Beiträge
 
Delphi 10.4 Sydney
 
#1

adoset.fields(i) falsche Parameteranzahl

  Alt 12. Jun 2010, 10:54
Datenbank: Access • Version: 2003 • Zugriff über: ole
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 ?
  Mit Zitat antworten Zitat