Sub Class_Globals
Private Root As B4XView 'ignore
Private xui As XUI
Private SQL1cipher As SQLCipher 'need SQLCipher library
Private MyFolder As String = "test"
Private DBFileName As String = "testcipher.db"
Private DBFilePath As String
Private DBTableName As String="tblUser"
Private strQuery As String
End Sub
Public Sub Initialize
End Sub
Private Sub B4XPage_Created (Root1 As B4XView)
Root = Root1
' Root.LoadLayout("MainPage")
xui.SetDataFolder(MyFolder)
#if B4A
DBFilePath = xui.DefaultFolder & "/" & MyFolder
File.MakeDir(DBFilePath,"")
' File.Delete(DBFilePath,DBFileName)
SQL1cipher.Initialize(DBFilePath, DBFileName, True, "", "")
#else if B4J
SQL1cipher.InitializeSQLite(xui.DefaultFolder, DBFileName, True)
#end if
CreateTable
InsertRecords
DisplayRecords
End Sub
Sub CreateTable
#if B4J
#else
' strQuery=$"DROP TABLE If EXISTS ${DBTableName}"$
' SQL1cipher.ExecNonQuery(strQuery)
strQuery=$"CREATE TABLE IF NOT EXISTS ${DBTableName}(name TEXT, phone TEXT, PRIMARY KEY(name))"$
SQL1cipher.ExecNonQuery(strQuery)
#end if
End Sub
Sub InsertRecords
strQuery =$"INSERT OR IGNORE INTO ${DBTableName} (name, phone) values("oz", json('{"cell":"+491765", "home":"+498973"}'))"$
SQL1cipher.ExecNonQuery(strQuery)
strQuery =$"INSERT OR IGNORE INTO ${DBTableName} (name, phone) values("john", json('{"cell":"123456", "home":"989654"}'))"$
SQL1cipher.ExecNonQuery(strQuery)
strQuery =$"INSERT OR IGNORE INTO ${DBTableName} (name, phone) values("oliver", json('{"cell":"54687", "home":"6009643"}'))"$
SQL1cipher.ExecNonQuery(strQuery)
End Sub
Sub DisplayRecords
strQuery = $"Select name, phone From ${DBTableName} WHERE json_extract(phone, '$.home') LIKE ? "$
Dim rs As ResultSet
rs = SQL1cipher.ExecQuery2(strQuery, Array As String("%89%"))
Do While rs.NextRow
Log($"The name is: ${rs.GetString("name")}"$)
Log($"The phone is: ${rs.GetString("phone")}"$)
Loop
rs.Close
End Sub