TruckerTom 10 Geschrieben 10. März 2009 Melden Teilen Geschrieben 10. März 2009 Hallo Kollegen, ich versuche es mal hier, ob jemand eine Idee hat. Ich habe eine Informix-Datenbank auf der ich zusätzlich zum eigentlichen Datenbank-Programm mit Access über ODBC Abfragen ausführen (will). Wenn ich jetzt auf bestimmte Tebellen Abfragen durchführe bekomme ich manchmal folgenden Fehler: [iNTERSOLV][ODBC Informix Driver][informix]Could not do a physical-order read to fetch next row. (#-244) [iNTERSOLV][ODBC Informix Driver][informix]ISAM error: record is locked. (#-107) Wenn ich den Fehler richtig deute, versucht in dem Moment Access ja auf eine Tabellenzeile zuzugreifen, die gesperrt ist. Allerdings greife ich ja nur lesend zu und das müsste doch auch dann funktionieren, wenn die Original-Anwendung auf der Datenbank zugange ist, oder? Auch kleinste Hilfen wären mir Recht, ich habe momentan keine Idee, wie ich vorgehen kann. Danke Thomas Zitieren Link zu diesem Kommentar
Cybquest 36 Geschrieben 10. März 2009 Melden Teilen Geschrieben 10. März 2009 Einfach mal so aus dem Bauch: Ich denke, Access versucht bei einer Abfrage selbst die Daten zu sperren, da man ja quasi dynamische Recordsets erzeugt. Möglicherweise könntest Du mit einer "Pass-Through"-Abfrage mit Deinem gewüschten Select-Statement mehr Erfolg haben. Zitieren Link zu diesem Kommentar
TruckerTom 10 Geschrieben 10. März 2009 Autor Melden Teilen Geschrieben 10. März 2009 Danke, gefunden. für andere: How to create an SQL pass-through query in Access – Ja, das funktioniert dann gut. Das Problem ist nur, dass ich dann nur direkte SQL-Abfragen machen kann und diese nicht mehr per Access "zusammenklicken" kann. Hast Du dafür auch noch eine Lösung? :) – was ich gerade feststelle: google ist ja heftig schnell mit indizieren von mcseboard-postings. Ich wollte mal noch weiter suchen, ob ich vielleicht sonst noch eine Lösung finde, und was spuckt mir google raus? Als einziges diesen Thread hier wenn ich nach "ISAM error: record is locked. (#-107)" suche :( Zitieren Link zu diesem Kommentar
TruckerTom 10 Geschrieben 11. März 2009 Autor Melden Teilen Geschrieben 11. März 2009 Ich habe jetzt bei IBM noch folgendes gefunden: IBM - XA Transactions and IBM Informix Dynamic Server Damit ist klar, dass das Problem auch existiert, wenn man bestimmte Applikationen aus dem WebSphere Application Server nutzt. Auf der Seite ist auch eine Lösung beschrieben, allerdings ahbe ich keine Ahnung, wie ich die auf Access umsetzen kann, einfach weil ich ja einen ODBC-Treiber benutze, der diese Einstellmöglichkeiten nicht bietet. Gruß Thomas Zitieren Link zu diesem Kommentar
Cybquest 36 Geschrieben 11. März 2009 Melden Teilen Geschrieben 11. März 2009 ...Das Problem ist nur, dass ich dann nur direkte SQL-Abfragen machen kann und diese nicht mehr per Access "zusammenklicken" kann.Hast Du dafür auch noch eine Lösung? :) Du kannst ja die Abfrage zusammenklicken, dann auf SQL-Ansicht umschalten und diesen SQL-String als Pass-Through-Abfrage nehmen :) Zitieren Link zu diesem Kommentar
TruckerTom 10 Geschrieben 12. März 2009 Autor Melden Teilen Geschrieben 12. März 2009 Ich habe mich weiter informiert und festgestellt, dass ich in dem Fall am besten einen sogenannten "Dirty Read" durchführe. Nur, wie sage ich MS Access, dass es so lesen soll? Weiss das jemand hier im Board? Gruß Thomas Zitieren Link zu diesem Kommentar
TruckerTom 10 Geschrieben 31. März 2010 Autor Melden Teilen Geschrieben 31. März 2010 So, inzwischen habe ich eine funktionierende Lösung für genau dieses Problem: Es gibt von IBM einen ODBC-Treiber (Version 3.50.TC6) der bietet auf der Reiterkarte "Environment" den Punkt "Isolation Level" und dort dann die Option "1 - Read Uncommitted". Diese löst genau unser Problem. Man muss einfach nur die richtigen Leute fragen (einen Informix-Trainer den ich hier hatte). Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.