Salve a tutti
Ho un problema con una query ricorsiva che nell'editor di sqlLiteStudio funziona ma quando la passo da b4a va in errore
L'errore è questo
Qualche anima pia può aiutarmi ?
Ho un problema con una query ricorsiva che nell'editor di sqlLiteStudio funziona ma quando la passo da b4a va in errore
B4X:
Sub popolaListaCatGroup
Dim dbCursor As Cursor
Dim q As String ="WITH RECURSIVE " & _
" cat_group(id_macro, desc, id,seq, level, abilitato) As ( " & _
" VALUES("""","""", '-1',0, """", """") " & _
" UNION ALL " & _
" Select categorie_menu.macro_cat, categorie_menu.descrizione, " & _
" categorie_menu.id_Cat,categorie_menu.sequenza, cat_group.level+1, " & _
" categorie_menu.abilitato " & _
" FROM categorie_menu JOIN cat_group ON categorie_menu.macro_cat=cat_group.id " & _
" ORDER BY 5 desc, 4 Asc ) " & _
" Select * FROM cat_group "
dbCursor= cnSql.dbsql.ExecQuery(q)
For i = 0 To dbCursor.RowCount - 1
DoEvents
dbCursor.Position=i
Dim cat_group As cat_group
cat_group.id_macro=dbCursor.GetInt("id_macro")
cat_group.desc=dbCursor.GetString("desc")
cat_group.id=dbCursor.GetInt("id")
L'errore è questo
B4X:
Error occurred on line: 133 (ClsMenu)
android.database.sqlite.SQLiteException: near "WITH": syntax error: , while compiling: WITH RECURSIVE cat_group(id_macro, desc, id,seq, level, abilitato) As ( VALUES("","", '-1',0, "", "") UNION ALL Select categorie_menu.macro_cat, categorie_menu.descrizione, categorie_menu.id_Cat,categorie_menu.sequenza, cat_group.level+1, categorie_menu.abilitato FROM categorie_menu JOIN cat_group ON categorie_menu.macro_cat=cat_group.id ORDER BY 5 desc, 4 Asc ) Select * FROM cat_group
at android.database.sqlite.SQLiteCompiledSql.native_compile(Native Method)
at android.database.sqlite.SQLiteCompiledSql.compile(SQLiteCompiledSql.java:92)
at android.database.sqlite.SQLiteCompiledSql.<init>(SQLiteCompiledSql.java:65)
at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:73)
at android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:49)
at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:42)
at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1502)
at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1470)
at anywheresoftware.b4a.sql.SQL.ExecQuery2(SQL.java:167)
at anywheresoftware.b4a.sql.SQL.ExecQuery(SQL.java:155)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at anywheresoftware.b4a.shell.Shell.runMethod(Shell.java:710)
at anywheresoftware.b4a.shell.Shell.raiseEventImpl(Shell.java:339)
at anywheresoftware.b4a.shell.Shell.raiseEvent(Shell.java:249)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:507)
at anywheresoftware.b4a.ShellBA.raiseEvent2(ShellBA.java:134)
Qualche anima pia può aiutarmi ?