Hab mal mit 4.2 etwas probieren willen, was merkwürdig reagiert:
Code: Alles auswählen
UseSQLiteDatabase()
Define Nr.l
Nr=OpenDatabase(#PB_Any, "e:\kbo\daten\demodaten.db","","")
If Nr
If DatabaseQuery(Nr,"select * from kunden where id=1")
While NextDatabaseRow(nr)
Debug "ID: "+GetDatabaseString(Nr,0)
Debug "Anrede: "+GetDatabaseString(Nr,2)
Wend
EndIf
CloseDatabase(Nr)
Nr=OpenDatabase(#PB_Any, "e:\kbo\daten\demodaten.db","","")
Debug "Begin: "+Str(DatabaseUpdate(Nr,"BEGIN TRANSACTION"))
Debug "Update: "+Str(DatabaseUpdate(Nr,"Update kunden set anrede='www' where id=1"))
Delay(1000)
Debug "Commit: "+Str(DatabaseUpdate(Nr,"COMMIT"))
Debug DatabaseError()
CloseDatabase(Nr)
EndIf
ID: 1
Anrede: www
Begin: 1
Update: 1
Commit: 1
Ändere ich den Code in folgenden
Code: Alles auswählen
UseSQLiteDatabase()
Define Nr.l
Nr=OpenDatabase(#PB_Any, "e:\kbo\daten\demodaten.db","","")
If Nr
If DatabaseQuery(Nr,"select * from kunden where id=1") <<<< ******
If NextDatabaseRow(nr)
Debug "ID: "+GetDatabaseString(Nr,0)
Debug "Anrede: "+GetDatabaseString(Nr,2)
EndIf <<<<< *******
EndIf
CloseDatabase(Nr)
Nr=OpenDatabase(#PB_Any, "e:\kbo\daten\demodaten.db","","")
Debug "Begin: "+Str(DatabaseUpdate(Nr,"BEGIN TRANSACTION"))
Debug "Update: "+Str(DatabaseUpdate(Nr,"Update kunden set anrede='www' where id=1"))
Delay(1000)
Debug "Commit: "+Str(DatabaseUpdate(Nr,"COMMIT"))
Debug DatabaseError()
CloseDatabase(Nr)
EndIf
ID: 1
Anrede: www
Begin: 1
Update: 1
Commit: 0
database is locked <<<<<<<< ********
Also sobald ich NextdatabaseRow ohne WHILE aufrufe, was bei 1 Satz ja auch nicht nötig wäre.
Entferne ich das Close/Open in der Mitte des Codes, erhalte ich die Fehlermeldung:
"cannot commit transaction - SQL statements in progress" in der Commit Zeile.
Da ich erst seit kurzem mit PB arbeite, kann ich mir daraus zunächst mal keinen reim machen. Hat jemand schonmal ähnliches gehabt? Oder wird das ein Beta Problem sein?
Oder mache ich hier einen Denkensfehler?
Grus
hja