DBExtensons: Umstellung noch nicht ganz erfolgreich

  • Allgemein

Es gibt 6 Antworten in diesem Thema. Der letzte Beitrag () ist von Marsianer.

    DBExtensons: Umstellung noch nicht ganz erfolgreich

    Bezug: [VB 2008] DBExtensions - allgemeine Lösung der Daten-Persistierung via Datenbanken


    Hi,

    ich habe es gewagt und mein Prog auf deine Extensions umgestellt. War völlig easy, ich habe den Adapter in meinem Startformular initialisiert, das Dataset dort befüllt und meine händischen Funktionen zum globalen Dataset in allen Forms auskommentiert und überall Register(me) reingeschrieben. Prog startet auch tadellos und zeigt mir auch meine Daten an. Wunnebar :thumbup: .

    Nu zicken die Extensions aber an einer Stelle noch rum und mein NIH-Syndrom meldet sich ;) :

    Wenn ich neue Datensätze anlegen will (und ich habs bisher in zwei Tables ausprobiert, immer das gleiche), dann bricht das Prog ab (s. Anhang).
    Ich vermute mal, das hängt damit zusammen, dass die id per Autoincrement von meiner SqlCE-Datenbank vergeben wird.

    Kannst du mir sagen, wie ich das abstellen kann?
    Bilder
    • DBExtensions_Zicken.PNG

      48,8 kB, 730×381, 44 mal angesehen
    Ich code nur 'just for fun'! Damit kann ich jeden Mist entschuldigen, den mein Interpreter verdauen muss :D

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „ErfinderDesRades“ ()

    mir scheint, in deim Dataset ist die ID-Spalte auf ReadOnly gesetzt.
    Das geht mit dem Persistier-Konzept von DBExtensions nicht zusammen, denn die speichern einen Insert in der DB, rufen dann die generierte ID von der DB wieder ab, und pflegen sie ins typDataset ein.
    Und dieses Einpflegen geht natürlich nur, wenn die ID nicht Readonly ist.
    Ausserdem muß bei Relationen "Regel aktualisieren: Cascade" eingestellt sein, damit auch untergeordnete Datensätze ihren ForeignKey entsprechend umändern.
    Funzt :thumbsup:

    Die ganzen Id's hatte mir der DataSet-Designer automatisch auf ReadOnly gestellt. Das habbich geändert und nu läufts wie der legendäre VW Käfer. Die Beziehungen waren nicht das Problem, weil ich die eh auf cascardierend gesetzt hatte.
    Ich code nur 'just for fun'! Damit kann ich jeden Mist entschuldigen, den mein Interpreter verdauen muss :D

    DBExtensions: Erster Datensatz wird geschreddert

    Hi,

    ich hab grade ein ganz komisches Phänomen:

    Immer, wenn ich einen neuen Datensatz in meine Haupttabelle einfüge und dann mit DataSet.Save(Me) abspeichere, dann passiert folgendes: Beim allerersten Datensatz, der von mir in dieser Tabelle erfasst wurde, verstellen sich die Eigenschaften, die per Foreign-Key an andere (Detail-Tabellen) gebunden sind. Die stellen sich alle auf id=erste id in der Detailtabelle. Ich bin schon mal im Debugging-Modus durchgegangen, aber ich find den Fehler net.

    Woran kann sowas liegen???
    Ich code nur 'just for fun'! Damit kann ich jeden Mist entschuldigen, den mein Interpreter verdauen muss :D
    So Problem ist gelöst. Hatte nicht direkt was mit den Extensions zu tun, sondern auch viel mit der etwas wirren Konstruktion meiner BindingsSources. An dieser Stelle ganz großes Dankeschön an den ErfinderDes Rades. Er hat rausgefunden, dass irgendwie die Bindingsource über welche meine Haupttabelle läuft, weiter im Edit-Modus war. Von daher half das Einfügen eines EndEdit, um das Problem zu fixen.
    Allerdings grübeln wir beide noch rum, warum das nötig war, eigenlich gehen die Extensions vor dem Abspeichern alle BindingSources durch und setzen jeweils das EndEdit.
    Falls jemand mal ein ähnliches Problem haben sollte, kann er ja beim Debuggen nachschauen, in welchem Zustand seine BindigSource ist, bevor er ein TableAdapter.Update macht bzw. bei den DBExtensions die Save()-Methode aufruft.

    Liebe Grüße
    Marsianer
    Ich code nur 'just for fun'! Damit kann ich jeden Mist entschuldigen, den mein Interpreter verdauen muss :D