iOSからDatabaseをアクセスする方法をあれこれ模索していたら,CubeSQL ServerはJson形式でコマンドを投げるとJsonで返してくれることが判明。
—- 接続用のJsonを生成 —-
Function BuildCubeSQLConnectJson(ConnetUsername As Text, ConnectPassword As Text) As xojo.Core.MemoryBlock
Using Xojo.Core
Using Xojo.Crypto
Dim username As xojo.Core.MemoryBlock
Dim password As xojo.Core.MemoryBlock
Dim pass As Text
Dim rndvalue As Text
Dim t As Text
dim m as xojo.Core.MemoryBlock
Dim randpool As UInt64
randpool = xojo.Math.RandomInt(10000000000, 99999999999999999999)
rndvalue = randpool.ToText
username = SHA1(Xojo.Core.TextEncoding.UTF8.ConvertTextToData(rndvalue+ConnetUsername))
password = SHA1(SHA1(Xojo.Core.TextEncoding.UTF8.ConvertTextToData(ConnectPassword)))
pass = xojo.Core.TextEncoding.ASCII.ConvertDataToText(password)
pass = rndvalue+EncodeBase64(pass)
password = Crypto.SHA1(xojo.Core.TextEncoding.ASCII.ConvertTextToData(pass))
t = "{"+&u22+"command"+&u22+":"+&u22+"CONNECT"+&u22+","+&u22+"username"+&u22+":"+&u22+mb2hex(username)+&u22+","+&u22+"password"+&u22+":"+&u22+mb2hex(password)+&u22+","+&u22+"randpool"+&u22+":"+&u22+rndvalue+&u22+"}"
m = xojo.Core.TextEncoding.UTF8.ConvertTextToData(t)
Return m
End Function
—- SQL文のJsonを生成 —-
Function BuildSqlJson(SQLstr As Text) As xojo.Core.MemoryBlock
Dim t As Text = "{"+&u22+"command"+&u22+":"+&u22+"SELECT"+&u22+","+&u22+"sql"+&u22+":"+&u22+SQLstr+";"+&u22+"}"
dim m as xojo.Core.MemoryBlock = xojo.Core.TextEncoding.UTF8.ConvertTextToData(t)
Return m
End Function