B4J Question Error message, SQL (ucanaccess-5.0.0)

kohle

Active Member
Licensed User
Longtime User
What does this error mean ?

An insert/Update I make to another table of the same database works fine.
An update to the table where the error occurs works fine, but an Insert command brings this error.
With 2 other tools the same insert worked fine, only in b4j I get this error.


B4X:
strSQL="insert into veranstaltung_stunden(veranstaltung_id,id,lfd_nr,datum,jahr,monat,arbeitsbeginn,arbeitsende,checkin,objekt_id,position_nr) values (5021,53,1,'2020-08-06',2020,8,8,18.25,true,0,0 ) "

Log(strSQL)
                  
sql.BeginTransaction
sql.ExecNonQuery(strSQL)
sql.TransactionSuccessful
sql.ExecNonQuery("COMMIT;")             'Here I get the error


Error Message:

java.lang.IllegalStateException: Could not find child entry in parent; childEntry NodeEntry[rowId=12694:18,subPage=13946,bytes=(10) 7F 80 00 13 9D 7F 80 00 00 34]; parent NodeDataPage[12738] 12742, 0, (14024)[entries=[NodeEntry[rowId=13168:153,subPage=12450,bytes=(10) 7F 80 00 12 37 7F 80 00 02 BD],NodeEntry[rowId=12767:8,subPage=12453,bytes=(10) 7F 80 00 12 41 7F 80 00 00 4B],NodeEntry[rowId=13170:22,subPage=12454,bytes=(10) 7F 80 00 12 46 7F 80 00 00 8F],NodeEntry[rowId=13408:37,subPage=12739,bytes=(10) 7F 80 00 12 50 7F 80 00 00 E6],NodeEntry[rowId=13174:54,subPage=13369,bytes=(10) 7F 80 00 12 59 7F 80 00 02 C7],NodeEntry[rowId=13283:2,subPage=12743,bytes=(10) 7F 80 00 12 5B 7F 80 00 03 FA],NodeEntry[rowId=13280:137,subPage=13348,bytes=(10) 7F 80 00 12 5C 7F 80 00 03 37],NodeEntry[rowId=13576:31,subPage=12740,bytes=(10) 7F 80 00 12 5D 7F 80 00 01 D2],NodeEntry[rowId=13440:64,subPage=13632,bytes=(10) 7F 80 00 12 5E 7F 80 00 01 FA],NodeEntry[rowId=13489:14,subPage=...
at com.healthmarketscience.jackcess.impl.IndexPageCache.updateParentEntry(IndexPageCache.java:535)
at com.healthmarketscience.jackcess.impl.IndexPageCache.replaceParentEntry(IndexPageCache.java:478)
at com.healthmarketscience.jackcess.impl.IndexPageCache.updateEntry(IndexPageCache.java:378)
at com.healthmarketscience.jackcess.impl.IndexPageCache.addEntry(IndexPageCache.java:299)
at com.healthmarketscience.jackcess.impl.IndexPageCache.access$1100(IndexPageCache.java:38)
at com.healthmarketscience.jackcess.impl.IndexPageCache$CacheDataPage.addEntry(IndexPageCache.java:1430)
at com.healthmarketscience.jackcess.impl.IndexData.commitAddRow(IndexData.java:680)
at com.healthmarketscience.jackcess.impl.IndexData.access$4300(IndexData.java:47)
at com.healthmarketscience.jackcess.impl.IndexData$AddRowPendingChange.commit(IndexData.java:2851)
at com.healthmarketscience.jackcess.impl.IndexData.commitAll(IndexData.java:820)
at com.healthmarketscience.jackcess.impl.TableImpl.addRows(TableImpl.java:2324)
at com.healthmarketscience.jackcess.impl.TableImpl.addRow(TableImpl.java:2169)
at net.ucanaccess.converters.UcanaccessTable.addRow(UcanaccessTable.java:46)
at net.ucanaccess.commands.InsertCommand.insertRow(InsertCommand.java:100)
at net.ucanaccess.commands.InsertCommand.persist(InsertCommand.java:148)
at net.ucanaccess.jdbc.UcanaccessConnection.flushIO(UcanaccessConnection.java:323)
at net.ucanaccess.jdbc.UcanaccessConnection.commit(UcanaccessConnection.java:205)
at net.ucanaccess.jdbc.AbstractExecute.executeBase(AbstractExecute.java:273)
at net.ucanaccess.jdbc.Execute.execute(Execute.java:44)
at net.ucanaccess.jdbc.UcanaccessStatement.execute(UcanaccessStatement.java:157)
at anywheresoftware.b4j.objects.SQL.ExecNonQuery(SQL.java:161)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at anywheresoftware.b4a.shell.Shell.runVoidMethod(Shell.java:676)
at anywheresoftware.b4a.shell.Shell.raiseEventImpl(Shell.java:240)
at anywheresoftware.b4a.shell.Shell.raiseEvent(Shell.java:167)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:91)
at anywheresoftware.b4a.shell.ShellBA.raiseEvent2(ShellBA.java:98)
at anywheresoftware.b4a.BA$1.run(BA.java:216)
at com.sun.javafx.application.PlatformImpl.lambda$null$5(PlatformImpl.java:295)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$6(PlatformImpl.java:294)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$null$4(WinApplication.java:186)
at java.lang.Thread.run(Thread.java:748)
Fehler in Zeile: 688
net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::5.0.0-SNAPSHOT Could not find child entry in parent; childEntry NodeEntry[rowId=12694:18,subPage=13946,bytes=(10) 7F 80 00 13 9D 7F 80 00 00 34]; parent NodeDataPage[12738] 12742, 0, (14024)[entries=[NodeEntry[rowId=13168:153,subPage=12450,bytes=(10) 7F 80 00 12 37 7F 80 00 02 BD],NodeEntry[rowId=12767:8,subPage=12453,bytes=(10) 7F 80 00 12 41 7F 80 00 00 4B],NodeEntry[rowId=13170:22,subPage=12454,bytes=(10) 7F 80 00 12 46 7F 80 00 00 8F],NodeEntry[rowId=13408:37,subPage=12739,bytes=(10) 7F 80 00 12 50 7F 80 00 00 E6],NodeEntry[rowId=13174:54,subPage=13369,bytes=(10) 7F 80 00 12 59 7F 80 00 02 C7],NodeEntry[rowId=13283:2,subPage=12743,bytes=(10) 7F 80 00 12 5B 7F 80 00 03 FA],NodeEntry[rowId=13280:137,subPage=13348,bytes=(10) 7F 80 00 12 5C 7F 80 00 03 37],NodeEntry[rowId=13576:31,subPage=12740,bytes=(10) 7F 80 00 12 5D 7F 80 00 01 D2],NodeEntry[rowId=13440:64,subPage=13632,bytes=(10) 7F 80 00 12 5E 7F 80 00 01 FA...
at net.ucanaccess.jdbc.UcanaccessStatement.execute(UcanaccessStatement.java:159)
at anywheresoftware.b4j.objects.SQL.ExecNonQuery(SQL.java:161)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at anywheresoftware.b4a.shell.Shell.runVoidMethod(Shell.java:676)
at anywheresoftware.b4a.shell.Shell.raiseEventImpl(Shell.java:240)
at anywheresoftware.b4a.shell.Shell.raiseEvent(Shell.java:167)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at anywheresoftware.b4a.BA.raiseEvent2(BA.java:91)
at anywheresoftware.b4a.shell.ShellBA.raiseEvent2(ShellBA.java:98)
at anywheresoftware.b4a.BA$1.run(BA.java:216)
at com.sun.javafx.application.PlatformImpl.lambda$null$5(PlatformImpl.java:295)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$6(PlatformImpl.java:294)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$null$4(WinApplication.java:186)
at java.lang.Thread.run(Thread.java:748)
Caused by: net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::5.0.0-SNAPSHOT Could not find child entry in parent; childEntry NodeEntry[rowId=12694:18,subPage=13946,bytes=(10) 7F 80 00 13 9D 7F 80 00 00 34]; parent NodeDataPage[12738] 12742, 0, (14024)[entries=[NodeEntry[rowId=13168:153,subPage=12450,bytes=(10) 7F 80 00 12 37 7F 80 00 02 BD],NodeEntry[rowId=12767:8,subPage=12453,bytes=(10) 7F 80 00 12 41 7F 80 00 00 4B],NodeEntry[rowId=13170:22,subPage=12454,bytes=(10) 7F 80 00 12 46 7F 80 00 00 8F],NodeEntry[rowId=13408:37,subPage=12739,bytes=(10) 7F 80 00 12 50 7F 80 00 00 E6],NodeEntry[rowId=13174:54,subPage=13369,bytes=(10) 7F 80 00 12 59 7F 80 00 02 C7],NodeEntry[rowId=13283:2,subPage=12743,bytes=(10) 7F 80 00 12 5B 7F 80 00 03 FA],NodeEntry[rowId=13280:137,subPage=13348,bytes=(10) 7F 80 00 12 5C 7F 80 00 03 37],NodeEntry[rowId=13576:31,subPage=12740,bytes=(10) 7F 80 00 12 5D 7F 80 00 01 D2],NodeEntry[rowId=13440:64,subPage=13632,bytes=(10) 7F 80 00 12 5E 7F 8...
at net.ucanaccess.jdbc.UcanaccessConnection.commit(UcanaccessConnection.java:212)
at net.ucanaccess.jdbc.AbstractExecute.executeBase(AbstractExecute.java:273)
at net.ucanaccess.jdbc.Execute.execute(Execute.java:44)
at net.ucanaccess.jdbc.UcanaccessStatement.execute(UcanaccessStatement.java:157)
... 22 more
Caused by: net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::5.0.0-SNAPSHOT Could not find child entry in parent; childEntry NodeEntry[rowId=12694:18,subPage=13946,bytes=(10) 7F 80 00 13 9D 7F 80 00 00 34]; parent NodeDataPage[12738] 12742, 0, (14024)[entries=[NodeEntry[rowId=13168:153,subPage=12450,bytes=(10) 7F 80 00 12 37 7F 80 00 02 BD],NodeEntry[rowId=12767:8,subPage=12453,bytes=(10) 7F 80 00 12 41 7F 80 00 00 4B],NodeEntry[rowId=13170:22,subPage=12454,bytes=(10) 7F 80 00 12 46 7F 80 00 00 8F],NodeEntry[rowId=13408:37,subPage=12739,bytes=(10) 7F 80 00 12 50 7F 80 00 00 E6],NodeEntry[rowId=13174:54,subPage=13369,bytes=(10) 7F 80 00 12 59 7F 80 00 02 C7],NodeEntry[rowId=13283:2,subPage=12743,bytes=(10) 7F 80 00 12 5B 7F 80 00 03 FA],NodeEntry[rowId=13280:137,subPage=13348,bytes=(10) 7F 80 00 12 5C 7F 80 00 03 37],NodeEntry[rowId=13576:31,subPage=12740,bytes=(10) 7F 80 00 12 5D 7F 80 00 01 D2],NodeEntry[rowId=13440:64,subPage=13632,bytes=(10) 7F 80 00 12 5E 7F 8...
at net.ucanaccess.jdbc.UcanaccessConnection.flushIO(UcanaccessConnection.java:360)
at net.ucanaccess.jdbc.UcanaccessConnection.commit(UcanaccessConnection.java:205)
... 25 more
Caused by: java.lang.IllegalStateException: Could not find child entry in parent; childEntry NodeEntry[rowId=12694:18,subPage=13946,bytes=(10) 7F 80 00 13 9D 7F 80 00 00 34]; parent NodeDataPage[12738] 12742, 0, (14024)[entries=[NodeEntry[rowId=13168:153,subPage=12450,bytes=(10) 7F 80 00 12 37 7F 80 00 02 BD],NodeEntry[rowId=12767:8,subPage=12453,bytes=(10) 7F 80 00 12 41 7F 80 00 00 4B],NodeEntry[rowId=13170:22,subPage=12454,bytes=(10) 7F 80 00 12 46 7F 80 00 00 8F],NodeEntry[rowId=13408:37,subPage=12739,bytes=(10) 7F 80 00 12 50 7F 80 00 00 E6],NodeEntry[rowId=13174:54,subPage=13369,bytes=(10) 7F 80 00 12 59 7F 80 00 02 C7],NodeEntry[rowId=13283:2,subPage=12743,bytes=(10) 7F 80 00 12 5B 7F 80 00 03 FA],NodeEntry[rowId=13280:137,subPage=13348,bytes=(10) 7F 80 00 12 5C 7F 80 00 03 37],NodeEntry[rowId=13576:31,subPage=12740,bytes=(10) 7F 80 00 12 5D 7F 80 00 01 D2],NodeEntry[rowId=13440:64,subPage=13632,bytes=(10) 7F 80 00 12 5E 7F 80 00 01 FA],NodeEntry[rowId=13489:...
at com.healthmarketscience.jackcess.impl.IndexPageCache.updateParentEntry(IndexPageCache.java:535)
at com.healthmarketscience.jackcess.impl.IndexPageCache.replaceParentEntry(IndexPageCache.java:478)
at com.healthmarketscience.jackcess.impl.IndexPageCache.updateEntry(IndexPageCache.java:378)
at com.healthmarketscience.jackcess.impl.IndexPageCache.addEntry(IndexPageCache.java:299)
at com.healthmarketscience.jackcess.impl.IndexPageCache.access$1100(IndexPageCache.java:38)
at com.healthmarketscience.jackcess.impl.IndexPageCache$CacheDataPage.addEntry(IndexPageCache.java:1430)
at com.healthmarketscience.jackcess.impl.IndexData.commitAddRow(IndexData.java:680)
at com.healthmarketscience.jackcess.impl.IndexData.access$4300(IndexData.java:47)
at com.healthmarketscience.jackcess.impl.IndexData$AddRowPendingChange.commit(IndexData.java:2851)
at com.healthmarketscience.jackcess.impl.IndexData.commitAll(IndexData.java:820)
at com.healthmarketscience.jackcess.impl.TableImpl.addRows(TableImpl.java:2324)
at com.healthmarketscience.jackcess.impl.TableImpl.addRow(TableImpl.java:2169)
at net.ucanaccess.converters.UcanaccessTable.addRow(UcanaccessTable.java:46)
at net.ucanaccess.commands.InsertCommand.insertRow(InsertCommand.java:100)
at net.ucanaccess.commands.InsertCommand.persist(InsertCommand.java:148)
at net.ucanaccess.jdbc.UcanaccessConnection.flushIO(UcanaccessConnection.java:323)
... 26 more
 
Last edited:

drgottjr

Expert
Licensed User
Longtime User
forget line 8. line 7 handles the commit and close. what you tried to "COMMIT" was no longer there
 
Upvote 0

aeric

Expert
Licensed User
Longtime User
B4X:
strSQL="insert into veranstaltung_stunden(veranstaltung_id,id,lfd_nr,datum,jahr,monat,arbeitsbeginn,arbeitsende,checkin,objekt_id,position_nr) values (5021,53,1,'2020-08-06',2020,8,8,18.25,true,0,0 ) "
sql.ExecNonQuery(strSQL)
Does it insert without using Transaction?

I doubt ms access has “true”, try replace with -1 if it is yes/no field.

If there is autoincrement field, don’t insert value, just let the database add the value automatically.
 
Upvote 0

kohle

Active Member
Licensed User
Longtime User
I found the problem and it sucks.

There is a primary key on the table with the name : Veranstaltung_MitarbeiterVeranstaltung_Stunden
I dropped and created new with the same name and it didnt work.
So I changed the index name to : PK_Veranstaltung_Stunden
and it works now fine.

It seems to be the length or what the hell....

rg
J.
 
Upvote 0
Top