Autowert zählt 13 hoch bei Programmstart.



  • Hi,
    ich sitze gerade an einem Programm bei dem ich über die BDE-Schnittstelle Daten aus einer Access Datenbank in mein Programm lade.
    In meinem Programm werden diese Dann von einem TTable Objekt geladen. Dieses TTable Objekt füllt dann die Daten über ein TDataSource Objekt in ein DBGrid.
    Nun habe ich festgestellt, dass er den Autowert, den jeder Datensatz hat bei jedem Programmstart um 13 hoch zählt, obwohl garkeine Datensätze erstellt bzw. gelöscht wurden.
    Füge ich also z.b. in Access einen neuen Datensatz hinzu, der den Autowert 26 hat und schließe die Datenbank, starte mein Programm und schließe auch das wieder, dann hat der nächste Datensatz den ich erstelle den Autowert 39. - und ich hab keine Ahnung warum.
    Das ganze obwohl ich in meinem Programm wirklich nichts mache und nichts anderes als die FormCreate Methode aufgerufen wurde.
    in dieser steht lediglich:

    Table1->Active=true;
    

    najo, hoffe hier kann mir jemand helfen.
    Danke schonmal für jeden Beitrag.
    Schöne Grüße
    Blace



  • Wieviele Datensätze sind eigentlich schon in der Tabelle? 13?



  • Und dein Programm hat auch wirklich keine neuen Tabelleneinträge erstellt?



  • Also die Datenbank hat 196 Datensätze.
    Neue Einträge mach ich noch nicht.
    Außerdem passiert das mit der Autowerterhöhung um 13 ja auch wenn ich garnichts mache im Programm und es schließe. Also sollte ja eig. nur FormCreate ausgeführt werden oder nicht? Timer hab ich keine drin.
    Im FormCreate steht nun

    Table1->IndexFieldNames=("Datum");
     Table1->Active=true;
    

    vorher jedoch nur

    Table1->Active=true;
    


  • Hab jetzt alles an Code in meinem Programm ausgeklammert außer dem Code in der FormCreate Methode und es passiert immer noch das gleiche beim Programmstart. Der Autowert wird um 13 hoch gezählt.
    Allein durch das aktivieren des TTable Objekts. Hat es irgendwas damit zu tun, dass es mit dem DataSource Objekt und dem DBGrid verbunden ist?
    schöne grüße
    Blace



  • Hallo

    Ein solches Verhalten hatte ich noch nie (und wenn ich mir das Feedback hier anschaue dann auch andere noch nie). Es gibt meiner Meinung nach nur zwei Fehlerursachen :
    - Dein manuell geschriebener Code
    - Die veraltete und fehlerhafte Kombination aus Paradox, DBE und TTable. Hier hilft der Umstieg auf aktuelle DBs, wie Firebird

    bis bald
    akari



  • Hi akari,
    danke für die Antwort. Ja hab zu dem Fehler auch nirgendwo was gefunden und kann ihn mir auch nicht erklären aber bei mir tritt er nunmal auf :/.

    Zur 1. Fehlerursache: Ja das der Fehler bei mir liegt das halte ich schon für sehr wahrscheinlich aber ich kann mir nicht vorstellen, dass es am Code liegt, weil ich ja wie gesagt schonmal alles ausgeklammert habe außer das FormCreate.
    Ich kann dir den Code auch gern mal schicken wenn du nichts dagegen hast. Veröffentlichen würde ich ihn hier jedoch nur ungern, weil es sich dabei um ein Schulprojekt von mir handelt, weshalb der Code im Internet nicht zu finden sein sollte. In diesem Fall würde das Projekt nämlich ungültig werden und mir würde unterstellt werden ich hätte den Code aus dem Internet kopiert.

    Zur 2. Fehlerursache: Ich benutze eine Access97 Datenbank und kein Paradox. Nun veraltet is das schon aber die neueren Datenbanken wurden von meinem alten Borland C++ Builder 5 nicht erkannt. Außerdem wäre es doch komisch wenn der Fehler jedesmal wenn man eine Access97 Datenbank nutzt auftreten würde.

    Gruß
    Blace


Anmelden zum Antworten