Announcement

Collapse
No announcement yet.

Delphi5 + Access 2000 update Problem

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Delphi5 + Access 2000 update Problem

    Hallo !<br>
    <br>
    Ich habe volgendes Problem:<br>
    Wenn ich in der Tabelle MyTAB z.B. 10 Einträge habe wird immer nur der erste Datensatz berechnet, d.h. er durchläuft die äußere Schleife nur einmal. Wieso ? Das verstehe ich nicht !<br>
    Ich benutze wie gesagt Delphi 5 und Access 2000.<br>
    <br>
    Andreas<br>
    <br>
    Query := TQuery.Create(self);<br>
    Query.DatabaseName := 'MyDB';<br>
    <br>
    Table := TTable.Create(self);<br>
    Table.DatabaseName := 'MyDB';<br>
    Table.TableName := 'MyTAB';<br>
    Table.Filtered := false;<br>
    Table.Open;<br>
    Table.First;<br>
    <br>
    while not Table.Eof do<br>
    begin<br>
    Query.SQL.Clear;<br>
    Query.SQL.Add('Select * FROM MyTAB2 WHERE ......');<br>
    Query.Open;<br>
    Query.First;<br>
    while not Query.Eof do<br>
    begin<br>
    //<br>
    // Berechnungen<br>
    //<br>
    SQLForm.Query.Next;<br>
    end;<br>
    <br>
    Table.Edit;<br>
    Table.FieldByName('a').AsInteger := // Berechnung a<br>
    Table.FieldByName('b').AsInteger := // Berechnung b<br>
    Table.Post;<br>
    <br>
    Table.Next;<br>
    end;<br>
    <br>
    Query.Close;<br>
    Query.Free;<br>
    Table.Close;<br>
    Table.Free;<br>

  • #2
    Hallo,

    generell ist der BDE Link-Treiber MSACCESS je nach Treiber-DLL (IDDA3532.DLL oder IDDA032.DLL) nur für ACCESS95- oder ACCESS97-Datenbanken zertifiziert. Sowohl Microsoft als auch Borland empfehlen, für ACCESS2000-Datenbanken nur noch <b>ADO</b> (d.h. den OLE DB Provider für die Microsoft JET ENGINE 4) zu verwenden

    Comment


    • #3
      d.h wohl ich soll TADOQuery usw. verwenden

      Comment


      • #4
        Hallo,

        nein - wenn schon, dann <B>TADODataSet</b>. Außerdem sollte man nur dann in einer Schleife durch die Datensätze gehen, wenn sich das Ergebnis über SQL nicht berechnen lässt.

        P.S: Wird die äußere Schleife normal abgearbeitet, wenn man den Bereich
        <pre>
        Table.Edit;
        Table.FieldByName('a').AsInteger := // Berechnung a
        Table.FieldByName('b').AsInteger := // Berechnung b
        Table.Post;
        </pre>
        auskommentiert? Wenn ja, würde ich diesen Teil auch in einer SQL-Anweisung (UPDATE) implementieren.
        &#10

        Comment

        Working...
        X