Sorry for being stupid !
I try to save data to the database. Save behkopf or behdetail alone is running without an error. Both together I get two errors, dependent on the line
	
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
database is locked (without sql.TransactionSuccessful)
or
java.lang.IllegalMonitorStateException (with sql.TransactionSuccessful)
Perhaps I haven't understand something fundamental ?
	
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
I create the tables:
	
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
	
	
	
	
	
	
	
		
			
			
			
			
			
		
	
	
	
		
	
	
		
	
			
			I try to save data to the database. Save behkopf or behdetail alone is running without an error. Both together I get two errors, dependent on the line
			
				B4X:
			
		
		
		sql.TransactionSuccessfuldatabase is locked (without sql.TransactionSuccessful)
or
java.lang.IllegalMonitorStateException (with sql.TransactionSuccessful)
Perhaps I haven't understand something fundamental ?
			
				B4X:
			
		
		
		    Dim sBehNr As String = ""
    Dim rs As ResultSet = sql.ExecQuery("SELECT beh FROM admin")
    Dim iOld As Int
    Try
        iOld = rs.GetString("beh")
    Catch
        iOld = 0
    End Try
    sBehNr = iOld + 1
    sql.ExecNonQuery("UPDATE admin SET beh = " & sBehNr & " where beh = " & iOld)
    Dim allRecords As List
    allRecords.Initialize
    Dim oneRecord As Map
    oneRecord.Initialize
    oneRecord.Put("nr", sBehNr)
    oneRecord.Put("patnr", sPatientenNr)
    oneRecord.Put("art", "")
    oneRecord.Put("thema", "")
    oneRecord.Put("datum", DateTime.Date(DateTime.Now))
    oneRecord.Put("zeit", DateTime.Time(DateTime.Now))
    oneRecord.Put("bis", "")
    oneRecord.Put("StartZeit", "")
    oneRecord.Put("Intervall", "")
    oneRecord.Put("Dauer", "")
    allRecords.Add(oneRecord)
    DBUtils.InsertMaps(sql, "behkopf", allRecords)
    sql.TransactionSuccessful
    For Each ent As TreeItem In lstHarmonisierung.Root.Children
        Dim allRecords2 As List
        allRecords2.Initialize
        Dim oneRecord2 As Map
        oneRecord2.Initialize
        oneRecord2.Put("nr", sBehNr)
        oneRecord2.Put("db", "")
        Log(ent.Text)
        oneRecord2.Put("eintrag", ent.Text)
        oneRecord2.Put("Anatomie", "")
        allRecords2.Add(oneRecord2)
        DBUtils.InsertMaps(sql, "behdetail", allRecords2)
        sql.TransactionSuccessful
    NextI create the tables:
			
				B4X:
			
		
		
		Sub CreateTables
    If DBUtils.TableExists(sql, "admin") = False Then
        DBUtils.CreateTable(sql, "admin", CreateMap("nr": DBUtils.DB_INTEGER, "beh": DBUtils.DB_INTEGER, "language": DBUtils.DB_TEXT), "nr")
        'sql.ExecNonQuery("CREATE TABLE admin (nr INTEGER, beh INTEGER, language TEXT)")
        'DBUtils.InsertMaps(sql, "admin", CreateMap("nr": "0", "beh": "0", "language": "german"))
        Dim allRecords As List
        allRecords.Initialize
        Dim oneRecord As Map
        oneRecord.Initialize
        oneRecord.Put("nr", "0")
        oneRecord.Put("beh", "0")
        oneRecord.Put("language", "german")
        allRecords.Add(oneRecord)
        DBUtils.InsertMaps(sql, "admin", allRecords)
        'sql.ExecNonQuery("insert into admin (nr, beh, language) values ('0', '0', 'german'")
    End If
    If DBUtils.TableExists(sql, "patienten") = False Then
        DBUtils.CreateTable(sql, "patienten", CreateMap("nr": DBUtils.DB_TEXT, "vorname": DBUtils.DB_TEXT, "nachname": DBUtils.DB_TEXT, "strasse": DBUtils.DB_TEXT, "plz": DBUtils.DB_TEXT, "ort": DBUtils.DB_TEXT, "gebdat": DBUtils.DB_TEXT, "typ": DBUtils.DB_TEXT) ,"nr")
    End If
    
    If DBUtils.TableExists(sql, "behkopf") = False Then
        DBUtils.CreateTable(sql, "behkopf", CreateMap("nr": DBUtils.DB_TEXT, "patnr": DBUtils.DB_TEXT, "art": DBUtils.DB_TEXT, "thema": DBUtils.DB_TEXT, "datum": DBUtils.DB_TEXT, "zeit": DBUtils.DB_TEXT, "Von": DBUtils.DB_TEXT, "Bis": DBUtils.DB_TEXT, "StartZeit": DBUtils.DB_TEXT, "Intervall": DBUtils.DB_TEXT, "Dauer": DBUtils.DB_TEXT) ,"nr")
    End If
    If DBUtils.TableExists(sql, "behdetail") = False Then
        DBUtils.CreateTable(sql, "behdetail", CreateMap("nr": DBUtils.DB_TEXT, "db": DBUtils.DB_TEXT, "eintrag": DBUtils.DB_TEXT, "Anatomie": DBUtils.DB_TEXT) ,"nr")
    End If
    
End Sub
			
				B4X:
			
		
		
		Sub FillLstPatienten
    lstSelectPatienten.Clear
    Dim rs As ResultSet = sql.ExecQuery("SELECT nr, nachname, vorname FROM patienten order by nachname, vorname")
    Do While rs.NextRow
        Dim sVorname As String
        Dim sNachname As String
        Dim iID As Int
        sVorname = rs.GetString("vorname")
        sNachname = rs.GetString("nachname")
        iID = rs.GetInt("nr")
        lstSelectPatienten.AddTextItem(sNachname & ", " & sVorname & "|" & iID, sNachname & ", " & sVorname & "|" & iID)
        'rs.NextRow
    Loop
End Sub
Fill Form Fields:
...
    sPatientenNr = Functions.Separator(sText, "|", 2, False)
    ClearStammdaten
    
    Dim lstTable As List
    Dim strFields() As String
    Dim lstRecords As List
    Dim iCountRecords As Int
    
    lstTable = DBUtils.ExecuteMemoryTable(sql, "SELECT * FROM patienten where nr = '" & sPatientenNr & "'", Null, 0)
    lstRecords.Initialize
    For iCountRecords = 0 To lstTable.Size - 1
        strFields = lstTable.Get(iCountRecords)
        txtVorname.Text = strFields(1)
        txtNachname.Text = strFields(2)
        txtStrasse.Text = strFields(3)
... 
				 
 
		 
 
		 
 
		