Office: (Office 2010) Transactions

Helfe beim Thema Transactions in Microsoft Access Hilfe um das Problem gemeinsam zu lösen; Ich kann Dir immer noch nicht folgen. Was hat eine binäre Suche in einem Array mit Late Binding zu tun? Du solltest schon Code aufführen, der Deine... Dieses Thema im Forum "Microsoft Access Hilfe" wurde erstellt von wof, 28. November 2017.

  1. Transactions


    Ich kann Dir immer noch nicht folgen. Was hat eine binäre Suche in einem Array mit Late Binding zu tun? Du solltest schon Code aufführen, der Deine Aussage untermauert - sonst behaupote ich, dass Deine Angabe falsch ist. *Smilie
     
  2. Wie schon in#26 geschrieben, war der einzige Unterschied Array()as Klasse bzw. Array()as object. Der Zeitbedarf um auf die Property mit dem String zuzugreifen, steigt danach um einiges an.
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    markusxy, 3. Dezember 2017
    #32
  3. Das, was Du anführst, ist aber doch nicht VBA/VB6 spezifisch. In jeder Programmiersprache wird ein ZUgriff, der GetIDsOfNames auf ein Interface benötigt, naturgemäß langsamer sein, als ein Zugriff via ID-Binding (gibt's in VBA nicht) oder via direktem Interface. Dieser Zugriff wird in C oder Assembler kaum schneller stattfinden.
     
  4. Transactions

    Wir sind inzwischen sehr weit OT vom ursprünglichen Thema.
    Nur kurz die Anmerkung: Auf meiner Website habe ich einen englischen Text zu Interna der COM-API, der (teilweise) die Hintergründe etwas erläutert inkl. eines Beispieldownloads, das den Zugriff auf Objektmethoden via ID-Binding zeigt. - Das ganze allerdings mit etwas anspruchsvollerer API-Programmierung. Daher möchte ich die Aussage "gibt's in VBA nicht" durchaus bestätigen.
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
  5. \@Sonic8,

    auf der Low-Level Ebene geht natürlich einiges. *Smilie
     
  6. Das habe ich weder gesagt noch gemeint, dass das ein spezifisches VB6/A Problem ist. Da geht es nur um einen Programmierstiel und das Bewusstsein, was bremst.

    Aber wie auch immer. Ich möchte hier meine Erfahrungen in Bezug auf Performance gar nicht breit treten. Ich hätte gehofft, dass du was dazu sagst. Für mich hat es sich so angehört, als wollte Wol sagen VB6 sei schneller als c#, was für mich nicht nachvollziehbar war.

    LG M
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
    markusxy, 3. Dezember 2017
    #36
  7. Ich möchte eure abgehobene Diskussion ja nicht stören, aber was mich angeht und mein originäres Problem, so hat der Link von Marsu mir erstmal ziemlich weitergeholfen.

    Allerdings krieg ich den Rest des Artikels nicht zu sehen. Ich hab versucht, mir das Testabo abzurufen, aber es kam seit gestern nichts in meiner E-Mail an, was mir einen Zugriff ermöglichen würde.
    Leider hätt ich das bis morgen gebraucht. Jetzt muss ich mal sehen, ob ich schon mit den unvollständigen Informationenen einen Schritt weiter komme.

    Ich kann zunächst also nur versuchen, das Hauptformular so umzustricken, dass die UFos mit Recordsets gefüllt werden. Dann muss man mal sehen, wie und wo man das .CommitTrans und das .Rollback einbaut.

    Na, ich werds mal versuchen...

    Wenns nicht klappt, muss ich halt versuchen, mit temporären Tabellen zu arbeiten und beim Speichern die Daten mit Einbauabfragen in die eigentlichen Tabellen zu speichern. Oder so...
     
  8. Transactions

    CommitTrans oder Rollback würde dann spätestens in's Unload-Ereignis des Formulars gehören.
     
  9. Nun, ich habe ein Unload oder ein weiterschalten auf einen anderen Datensatz verhindert, solange editieren erlaubt ist. Das Rollback muss schon im Ereignis des Cancelbuttons stattfinden.

    Ich bin nur etwas verwirrt über das mehrfache Auftreten des BeginTrans...

    Bisher scheint mir das so: Eigentlich brauche ich bloß die Unterformulare mit Recordsets darzustellen, denn den Hauptsatz kann ich ja eigentlich mit Undo zurückstellen, was ich bisher ja auch mache, bloß, dass dann natürlich die Änderungen an den UFos nicht zurückgenommen werden.

    Unbekannt und neu ist mir ebenfalls das Arbeiten mit dem Workspace.

    Danke erstmal für all den Input. Morgen wird sichs zeigen, ob ich das hinkriege. *Smilie

    P.S.: Die Anmeldung hat doch noch geklappt. (Lag im SPAM-Ordner). Also hab ich den Rest des Artikels lesen können. Mal sehn, obs hilft.
     
  10. Ich sehe technische Machbarkeit getrennt von der Sinnhaftigkeit es tatsächlich so zu implementieren. - Ich hoffe das geht aus meinen zitierten Artikel zu dem Thema auch deutlich hervor.

    Die obige Denkfrage möchte ich noch um eine weitere Facette erweitern.

    Zusätzlich zu der Problematik, dass es durch die Useraktion, bzw. unbestimmt langem Ausbleiben derselben, zu Verzögerungen und dadurch verursachten Problem mit Datensatzsperren kommen kann, sollte man auch bedenken, dass man in einem HFO/UFO-Formular-Transaktionsszenario auch die Art der Transkation, d.h. die beteiligten Datensätze bzw. Tabellen und die Reihenfolge, in der diese gesperrt werden, nicht zuverlässig im Voraus bestimmen kann.

    Dies ist insofern Problematisch, weil dies Deadlocks zwischen verschiedenen Usern verursachen kann. Ob Access selbst einen Mechanismus hat, um Deadlocks aufzulösen, ist mir nicht bekannt. Im worst-case hängt einfach die Applikation bei (mindestens) zwei Users bis ans Ende der Zeit oder bis einer entnervt den Prozess abschießt.
     
    Zuletzt von einem Moderator bearbeitet: 7. Januar 2021
  11. Soweit ich es verstanden habe, wird die Datenbank vornehmlich von einer Person gleichzeitig genutzt. Da dürfte dieser Transaktionsvorgang eigentlich kein Problem darstellen.
    Es wird doch nicht etwa nach BeginTrans die gesamte Datenbank gesperrt, oder? Doch nur die beteiligten Datensätze, denke ich.
     
  12. Desweilen scheinen Hinweise zu klein oder zu groß, zu einfach oder zu schwierig dargestellt zu sein, als dass sie Eingang in die Wahrnehmung oder gar in das Denken oder Handeln eines einzelnen finden können.
     
  13. Transactions

    Eingang in meine Wahrnehmungen fanden jedoch auch gewisse Artikel, die beschreiben, dass es doch geht. Ich hoffe, es verletzt Dein Ego nicht allzu sehr, wenn ich es trotzdem versuche.
    Hilf mir doch bitte lieber mal hiermit: Warum feuert bei meinem Formular das Form_Open nicht? Ich hab eine MsgBox reingesetzt, um festzustellen, wann der Event kommt, es passiert aber nichts.??
     
  14. Nie im Leben fühle ich mich da verletzt:
    a) kann ich fachliche Aussagen und persönliche Empfindungen trennen. Wenn ich auf einen Fehler einschließlich einen problematischen Zustand hingewiesen werde, stellt das keine persönliche Beleidigung dar. Fehler gehören zum Handeln dazu und passieren eben.
    Es ist eher die Chance, neu zu denken und zu handeln.
    b) ist es Deine Zeit.

    Events finden immer statt, Form_Open also beim Öffnen eines Formulars.
    Also ist Deine Erwartung im Zusammenhang falsch, oder die Accessinstallation ist fehlerhaft.
     
  15. Fehlerhaft ist diese Installation gewiss nicht. In anderen Formularen kommt die MsgBox, wenn ich sie in den Open-Event schreibe.
    Nur eben bei diesem Formular mit den drei Unterformularen in welches ich diese Transaktionsgeschichte einbauen will, bleibt sie aus. Ist mir selbst unbegreiflich.

    Ich kann ebenfalls sachliche und persönliche Aussagen trennen. Wenn jemand sagt: "Was Du da machen willst, geht nicht", dann "kommt das auch an". Aber halbgare Hinweise und unverständliche Vergleiche mit Nachbars Milch sind für mich kein Grund gleich zu sagen, ok großer Guru, dann lass ichs halt.
    Offenbar (siehe Marsus Artikel) geht es ja irgendwie doch.

    Eine andere Lösung wären temporäre Tabellen für die Unterformulare und bei "Speichern" diese mit Aktionsabfragen wieder in die Tabellen zu schreiben. Das schien mir aber im ersten Moment umständlicher.
     
Thema:

Transactions

Die Seite wird geladen...
  1. Transactions - Similar Threads - Transactions

  2. TRANSACTION-Anweisung

    in Microsoft Access Tutorials
    TRANSACTION-Anweisung: TRANSACTION-Anweisung Access für Microsoft 365 Access 2019 Access 2016 Access 2013 Access 2010 Access 2007 Mehr... Weniger...
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden