Two questions:
1. In an SQL query, is the IGNORE command somehow not valid syntax when passed from a B4J program?
In the sample program below, when I include IGNORE in the sqlquery I get an error mesage in the logs:
(SQLException) java.sql.SQLException: [SQLITE_ERROR] SQL error or missing database (near "IGNORE": syntax error)
Removing the "IGNORE" statement allows it proceed as expected.
2. In one of the guide books, I found an example of some code which suggested using BeginTransaction etc under some circumstances; it also says .EndTransaction is required to complete it. Has EndTransaction been deprecated or something? When I try to type it in the IDE, it generates an "Unknown member: endtransaction" error.
1. In an SQL query, is the IGNORE command somehow not valid syntax when passed from a B4J program?
In the sample program below, when I include IGNORE in the sqlquery I get an error mesage in the logs:
(SQLException) java.sql.SQLException: [SQLITE_ERROR] SQL error or missing database (near "IGNORE": syntax error)
Removing the "IGNORE" statement allows it proceed as expected.
2. In one of the guide books, I found an example of some code which suggested using BeginTransaction etc under some circumstances; it also says .EndTransaction is required to complete it. Has EndTransaction been deprecated or something? When I try to type it in the IDE, it generates an "Unknown member: endtransaction" error.
B4X:
#Region Project Attributes
#MainFormWidth: 600
#MainFormHeight: 600
#AdditionalJar: sqlite-jdbc-3.7.2
#End Region
Sub Process_Globals
Private fx As JFX
Private MainForm As Form
Public SQL1 As SQL ' requires jSQL library
Public Query As String
End Sub
Sub AppStart (Form1 As Form, Args() As String)
MainForm = Form1
'MainForm.RootPane.LoadLayout("Layout1") 'Load the layout file.
MainForm.Show
SQL1.InitializeSQLite(File.DirData("ExamplesSQL"),"test.db", True)
Query = "CREATE TABLE IF NOT EXISTS Stats (ID INT PRIMARY KEY, COL_A VARCHAR(255))"
SQL1.ExecNonQuery(Query)
AddNew
End Sub
'Return true to allow the default exceptions handler to handle the uncaught exception.
Sub Application_Error (Error As Exception, StackTrace As String) As Boolean
Return True
End Sub
Private Sub AddNew
SQL1.BeginTransaction
Try
Dim ID As Int
For i = 0 To 10000
ID = i
Dim sqlquery As String
sqlquery = "INSERT IGNORE INTO Stats VALUES(" & ID & "," & Rnd(0,1000000) & ")"
SQL1.ExecNonQuery(sqlquery)
Next
Log("DB updated")
SQL1.TransactionSuccessful
Catch
Log(LastException)
End Try
SQL1.EndTransaction
End Sub