![]() |
Datenbank: SQlite • Version: 3 • Zugriff über: dll
SQLite3 locked
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo,
ich schreibe in einer Anwendung die Daten mit SQlite.dll in eine Datenbankdatei. Das Projekt ist schon etwas älter und wurde ursprünglich mit Delphi4 geschrieben und sqlite war die Version2. Jetzt hab ich das Projekt umbauen müssen und dabei gleich mal die sqlite3.dll mit rein (wenns schon neueres gibt dann warum nicht) Jetzt bekomm ich bei jedem Schreibzugriff auf die Datenbank aber eine Fehlermeldung(siehe angehängtes Bild). wie behebe ich das? Codeschnipsel:
Delphi-Quellcode:
ich habs dann auch versucht mit
//Daten updaten
sldb.BeginTransaction; sSQL:='UPDATE artikel SET '; sSQL:=sSQL+'tapeid="'+begurt.text+'"'; sSQL:=sSQL+',beinfo="'+betext.text+'"'; sSQL:=sSQL+',lort="'+belager.text+'"'; sSQL:=sSQL+',notes="'+beinfotext.text+'"'; sSQL:=sSQL+' WHERE sap="'+besap.text+'"'; sldb.ExecSQL(sSQL); sldb.Commit; sldb.execsql('BEGIN EXCLUSIVE TRANSACTION'); hat aber auch nichts gebracht. Gruß Matthias |
AW: SQLite3 locked
Sicher dass es an der anderen DLL liegt? Nicht dass du noch mit irgendeinem anderen Programm wie SQLite Expert die DB offen hast? Oder dem "Daten-Explorer" des RAD Studio? So hungrig wie das RAD Studio nach Filehandles ist (und sie nie freigibt)...
|
AW: SQLite3 locked
Nein, ich hab sie nur einmal offen, greif mit nix anderem drauf zu
|
AW: SQLite3 locked
.. wo liegt denn die Datenbank?
Ist da das Schreiben erlaubt? Grüße Klaus |
AW: SQLite3 locked
Auch ein nicht abgeschlossener Lesevorgang locked Sqlite3.
|
AW: SQLite3 locked
Die Datei selbst liegt auf einem Netzlaufwerk mit Schreibrechten, hat ja auch mit der sqlite2 funktioniert.
Zitat:
|
AW: SQLite3 locked
Zitat:
![]() Zitat:
Zitat:
Auch: Ich verstehe das "Zugriff über: dll" nicht. Gehst du nun direkt über die dll oder (der Quellcode sieht eher danach aus) eine Zwischenschicht wie dbExpress oder FireDAC? |
AW: SQLite3 locked
Zitat:
|
AW: SQLite3 locked
Zitat:
Ich verwende kein dbExpress und kein FireDAC Bei dbExpress ist die Unterstützung für sqlite meines Wissens erst ab XE3 drin und ich hab lediglich die XE2 Wenn man da die Unterstützung von sqlite durch dbexpress nachinstallieren kann wär das auch nicht schlecht. Der Code zum lesen - nur relevanter Teil
Delphi-Quellcode:
if FileExists(slDBPath) then begin
//Daten in Datenbank schreiben try sldb := TSQLiteDatabase.Create(slDBPath); try sltb := slDb.GetTable('SELECT * FROM tape WHERE [firstID]........ ........... finally sltb.free; end; finally sldb.free; end; |
AW: SQLite3 locked - gelöst
Zitat:
Ich hab jetzt den Codeteil gefunden wo ich zwar die Datenbank wieder frei gegeben habe, aber nicht vorher die Tabelle, und damit bleibts locked. Dies war in einem Codeteil der mit dem wo der Fehler auftritt nichts zu tun hat, aber bei bestimmten Aktionen auch Daten abgerufen werden. Danke euch allen. Gruß Matthias |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:11 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