Czy jest znany problem z tym, że SQLite daje błąd "baza danych jest zablokowana" dla drugiego zapytania w pojedynczej transakcji podczas korzystania z Perl DBD :: SQLite? Scenariusz: Linux, Perl DBI, AutoCommit => 0, podprogram z dwoma blokami kodu (za pomocą bloków do lokalizowania nazw zmiennych). W pierwszym bloku kodu uchwyt zapytania jest tworzony przez funkcję prepare() w instrukcji select, jest wykonywany() i blok jest zamknięty. Drugi blok kodu inny uchwyt zapytania jest tworzony przez przygotowanie do instrukcji aktualizacji, a często (30% czasu) SQLite/DBI daje błąd bazy danych zablokowany na tym etapie. Myślę, że błąd występuje podczas przygotowywania(), a nie podczas wykonywania().Dlaczego SQLite daje "baza danych jest zablokowana" dla drugiego zapytania w transakcji przy korzystaniu z DBD :: SQLite Perla?
Moja praca polega na zatwierdzeniu po pierwszym zapytaniu. (Zakończenie rozmowy w pierwszym zapytaniu nie pomogło). Wolę nie angażować się z kilku powodów związanych z elegancją i wydajnością. Oryginalny kod sprawdzał się przez wiele lat z Postgres jako bazą danych. Próbowałem sqlite_use_immediate_transaction bez efektu.
We wszystkich innych sytuacjach znalazłem SQLite, który działa bardzo dobrze, więc podejrzewam, że jest to niedopatrzenie w sterowniku DBD, a nie problem z SQLite. Niestety, mój obecny kod jest dużą stertą skryptów i modułów, więc nie mam krótkiego, pojedynczego pliku testowego.
Czy możesz pokazać nam swój mały przypadek testowy, który pokazuje problem? –