Announcement

Collapse
No announcement yet.

Access & Autoincrement

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

  • Access & Autoincrement

    hallo,
    ich muss aus meiner app in eine "fremde" mdb-datei/tabelle daten importieren.
    soweit so gut, funktioniert grundsätzlich einwandfrei
    ABER
    das PKey-Feld ID ist ein autoincrement-feld; hier erhöht sich bei jedem einfügen von einem datensatz der wert nicht um eins sondern um sechs (6)!
    dabei ist es egal, ob ich neue datensätze über bde 5.1.1 (habe delphi 5.01c/s) oder ADO gehe bzw. über ich es im programm oder manuell über ein dbgrid anlege.
    im access-prog. selber kann ich neue datensätze anlegen, die mit 1 hochgezählt werden.
    ist es ein bug/feature oder was? der import läuft zwar fehlerfrei aber alleine aus kosmetischer Sicht bzw. wenn der mdb-inhaber das sieht, was soviel falsche daten, die alle wieder gelöscht wurden....

    danke für jeden hinweis.

    :-) thomas

  • #2
    Hi!

    Das Problem hatte ich auch schon. Es scheint so zu sein, daß die Treiber von Delphi da Mist machen.

    Das Problem ist wohl, daß die BDE den Datensatz mehrfach anlegt (nacheinander), um mehrere Operationen nacheinander auszuführen und die neueste Kopie dann behält.
    Das Beste war immer, AUTOINCREMENT in der Datenbank auszulassen und selbst diese Funktion zu programmieren.

    Grüße
    Tim

    Comment


    • #3
      timo,

      danke für den hinweis, aber ich kann/darf die mdb nicht modifizieren.
      muss scheinbar damit leben....

      :-) thoma

      Comment


      • #4
        Hallo,

        die Autoincrement-Felder arbeiten beim Zugriff über ADO nur dann korrekt, wenn die Datenbank das neue ACCESS2000-Format verwendet. Dieses Problem wird von Microsoft offiziell dokumentiert (aber dort nicht als Problem, sondern als "Eigenheit" bezeichnet)

        Comment


        • #5
          hallo andreas,

          danke für die info, wie sieht es aber mit dem "alten" weg über die BDE aus??
          mein problem ist mit beiden wegen reproduzierbar.

          gibt es hier nähere info's von ms / borland??

          :-) thoma

          Comment


          • #6
            Hallo,

            die Frage ist, ob auf diesem Rechner einmal <b>MDAC 2.x</b> alias <b>JET ENGINE 4.0</b> installiert wurde (viele Anwendungen machen das zur Zeit implizit). Wenn ja, ist das ACCESS97-Format anscheinend "zu alt". Der BDE-Weg arbeitet nur dann zuverlässig, wenn mit der alten DAO-Engine (alias JET ENGINGE 3.x) auf die ACCESS97-Datenbank zugegriffen wird und die neuen Sachen noch niemals auf diesem Rechner installiert wurden

            Comment

            Working...
            X