Thread DBD::SQLite: Meldung db table is locked(1) (6 answers)
Opened by Kean at 2011-01-28 10:18

Kean
 2011-01-28 10:18
#145089 #145089
User since
2004-08-18
463 Artikel
BenutzerIn

user image
Ich nutze DBI mit SQLite auf einem WindowsXP System und will in einer Schleife mehrere Datensätze löschen. Das ganze mit folgendem Code:

Code (perl): (dl )
1
2
3
4
5
6
7
8
my $sql = "SELECT ID FROM User WHERE Status = 'X';";
my $sth = $dbh->prepare($sql);
$sth->execute;

while ( my $id = $sth->fetchrow_array ) 
{
$dbh->do("DELETE FROM User WHERE ID = $id;");
}


Das funktioniert bei einem Datensatz wunderbar. Wenn es aber mehrere Datensätze sind löscht er bei jedem starten einen Datensatz und bringt ab dem zweiten folgenden Fehler:

Code: (dl )
DBD::SQLite::db do failed: database table is locked(1) at dbdimp.c line 402


An was könnte das liegen? Ich habe es vorher schon anstatt mit do mit prepare und execute versucht.

View full thread DBD::SQLite: Meldung db table is locked(1)