Entwickler-Ecke
Datenbanken - Bei mehrfachem Zugriff auf die gleiche Tabelle "hängt" es
Tower - Mo 13.07.09 12:33
Titel: Bei mehrfachem Zugriff auf die gleiche Tabelle "hängt" es
Hallo,
ich habe ein Projekt, dass auf eine Firebird-Datenbank zugreift. Dazu benutze ich sowohl TIBDatabase- wie TSQLConnection-Komponenten.
Wenn ich "Single-User" auf das Programm zugreife, gibt es da auch kein Problem.
Wenn ich aber zwei Instanzen meines Programms öffne, kann ich im ersten eine Tabelle öffnen, beschreiben usw. Die zweite Instanz aber bleibt in einer "CheckBrowseMode"-Zeile (einer Tabelle, die auch in der ersten Distanz geöffnet ist) einfach hängen. Und zwar so lange, bis ich die Bearbeitung in der ersten Instanz beende - dann geht es in der zweiten weiter, als wäre nie etwas geschehen.
Meinem Verständnis von Transaktionen nach (das allerdings zugegebenermaßen lückenhaft ist ;-) ) sollten sich doch zwei Programme überhaupt nicht stören in einer solchen Konstellation, oder?
Hat jemand eine Idee, womit das zusammenhängen könnte, bzw. wie ich das Problem beseitigen kann?
Danke schonmal!
Xentar - Mo 13.07.09 13:09
Verwendest du denn auch Transaktionen?
Ich kenn den Aufbau nur so:
TIBDatabase -> TIBTransaction -> TIBQuery -> <Darstellungskomponente z.B. TGrid>
Tower - Mo 13.07.09 13:17
Ja, genau so ist der Aufbau auch.
Und der machte in einem älteren Projekt auch keine Probleme in der Richtung.
Mordilion - Mo 13.07.09 17:25
Also, es ist nur ein Vermutung, aber verwendest du zufällig die Embedded-Version von Firebird? Kann es vielleicht sein, das es damit zusammen hängt?
Gruß
Mordi
Tower - Di 14.07.09 10:50
Nein, das ist es leider nicht, es ist der ganz "normale" Firebird.
Ich habe hier auch schon diverses herumprobiert, hauptsächlich an Transaktionseinstellung u.ä., leider ohne Erfolg.
Für weitere Ideen bin ich also immer dankbar... ;-)
BenBE - Di 14.07.09 10:57
Wie sehen deine Einstellungen bzgl. Locks auf die Tabellen aus? Sind da irgendwelche exklusiven Locks beteiligt? Share-Berechtigungen vorhanden?
Tower - Di 14.07.09 11:15
Bewusst hätte ich nichts dergleichen eingestellt. Ich muss allerdings zugeben, dass ich gar nicht sicher bin, wo ich das könnte.
Als erstes hätte ich es ja in den TIBTransaction-Komponenten vermutet, sonst noch evtl. in den TIBDatabase-Komponenten. In beiden finde ich aber keine Eigenschaften, die mir weiterhelfen. Oder muss ich da etwas in den "Params" angeben?
Sorry für's blöde Fragen, aber ich finde es auch schwierig, da vernünftige Doku zu zu finden...
BenBE - Di 14.07.09 11:19
Ich hab weder mit IB noch FB bisher gearbeitet, weiß aber von anderen RDBMS, dass es für die erwähnten Eigenschaften meist Steuermöglichkeiten gibt. Das können Dir die DB-Profis hier aber sicherlich im Detail erklären, wo das konkret zu finden ist. Die Params KÖNNTEN aber durchaus schon ein sinnvoller Anhaltspunkt sein.
Andreas Schilling - Di 14.07.09 11:45
Mach mal ein Doppelklick auf die Transactions-Komponente dann hast du deine Einstellungsmöglichkeiten. Wenn da nichts drinnen steht, greift irgend eine default Einstellung.
Tower - Di 14.07.09 14:47
Auwei, ein Doppelklick! :shock: Wahrscheinlich das einzige, was ich noch nicht ausprobiert habe - wie peinlich. *hüstel*
Danke, das hat mich zur Lösung gebracht. Als "read_commited" konfiguriert, gibt's zwar jetzt noch ein paar andere Klippen, aber die werde ich wohl umschiffen.
Danke euch!
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!