![]() |
Datenbank: SQLite • Version: 3 • Zugriff über: Zeos
Zugriff via Zeos auf SQLite DB von mehren Threads
Hallo Leute,
in meiner Anwendung soll ein Hintergrund-Thread in regelmäßigen Abständen prüfen ob neue Dateien/Daten vorliegen, diese sollen dann eingelesen und in der Datenbank gespeichert werden. Der Anwender kann dann auf der Programmoberfläche nach diesen Daten suchen und sich anzeigen lassen. In einem ersten Test habe ich eine "Connection" aufgebaut und sowohl der Hintergrund-Thread als auch der Main-Thread (Programmoberfläche) greifen über diese eine Verbindung auf die Datenbank zu. Jedoch scheint das zu Problemen zu führen da ich ab und zu Exceptions erhalte, ich vermute das sich die Abfragen in die quere kommen. (Der Hintergrund-Thread benutzt Transaktionen zum Speichern der Daten). Der zweite Versuch mit zwei getrennten "Connection" klappt auch nicht da wenn der Hintergrund-Thread Daten in die DB speichert ist für den Main-Thread schein bar die DB geblockt. Was ja logisch wäre da SQLite nicht Mulituserfähig ist. Muss ich jetzt manuell regeln das sich die Abfragen nicht in die Quere kommen oder ist es doch möglich das ein Hintergrund-Thread Daten in einer Datenbank speichern oder ändern kann während gleichzeitig der Main-Thread Daten Abfragen kann. Der Main-Thread müsste nie Daten ändern oder hinzufügen können. Mfg TUX |
AW: Zugriff via Zeos auf SQLite DB von mehren Threads
Zitat:
wie wäre es wenn Du mit nur einen DB-Communication-Thread arbeiten würdest? Dann würde zumindestens Deine Datenbank Dir nicht in die Suppe spucken. (ich kenne sql-light allerdings nicht gut genug) Gruß K-H |
AW: Zugriff via Zeos auf SQLite DB von mehren Threads
Ich habe da gerade was in den FAQ von SQLite gelesen
![]() Zitat:
Das Problem ist nur wie kann ich SQLITE_BUSY abfragen bevor im Main-Thread eine neue Abfrage gestartet wird?! |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:30 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz