MSSQL,不知道是哪里错了,读不下去了

hyjsd

New Member
#Region 项目属性
#ApplicationLabel:B4A 示例
#版本代码:1
#版本名称:
'SupportedOrientations 可能的值:未指定、横向或纵向。
#SupportedOrientations:未指定
#CanInstallToExternalStorage:假
#结束区域

#Region 活动属性
#全屏:错误
#IncludeTitle: 真
#结束区域

子进程_全局变量
私有连接作为 MSSQL
结束子

子全局变量
私有 B4XTable1 作为 B4XTable

结束子

子 Activity_Create(FirstTime As Boolean)
如果第一次那么
' CopyDBIfNeeded("chinook.db")
conn.setDatabase("hyjsd.top","data_jy","sa","modi comm")
' conn.Initialize(File.DirInternal, "Userinfo", False)
万一
Activity.LoadLayout("1")
B4XTable1.AddColumn("UserId", B4XTable1.COLUMN_TYPE_NUMBERS)
B4XTable1.AddColumn("名称", B4XTable1.COLUMN_TYPE_TEXT)
B4XTable1.AddColumn("性别", B4XTable1.COLUMN_TYPE_TEXT)
B4XTable1.AddColumn("地址", B4XTable1.COLUMN_TYPE_TEXT)

将数据变暗为列表
数据初始化
Dim rs As ResultSet = conn.Query("SELECT UserId, Name, GenDer, Address, Phone FROM customers")
执行 While rs.NextRow
Dim row(4) 作为对象
row(0) = rs.GetDouble("UserId")
row(1) = rs.GetString("Name") & " " & rs.GetString("GenDer")
row(2) = rs.GetString("地址")
'有些字段为空。我们需要将它们转换为空字符串:
如果 row(2) = Null 那么 row(2) = ""
row(3) = rs.GetString("电话")
数据.添加(行)
环形
rs.关闭
B4XTable1.SetData(数据)

结束子

'Sub CopyDBIfNeeded(文件名作为字符串)
' 如果 File.Exists(File.DirInternal, Filename) = False 那么
' File.Copy(File.DirAssets, Filename, File.DirInternal, Filename)
' 万一
'结束子

子活动_简历

结束子

Sub Activity_Pause (UserClosed As Boolean)

结束子
 

aeric

Expert
Licensed User
Longtime User
首先,您需要明白MSSQL和SQLite的区别。
CopyDBIfNeeded("chinook.db") 只能用于在SQLite 类的数据库。
链接MSSQL就不一样了。您可以采用jRDC2。
如果你是使用SQLite,那么就应该将您的变量声明为SQL。
比如:
B4X:
Dim conn As SQL
 

aeric

Expert
Licensed User
Longtime User
首先,您需要明白MSSQL和SQLite的区别。
CopyDBIfNeeded("chinook.db") 只能用于在SQLite 类的数据库。
链接MSSQL就不一样了。您可以采用jRDC2。
如果你是使用SQLite,那么就应该将您的变量声明为SQL。
比如:
B4X:
Dim conn As SQL
对不起,再看回多一次原来你已经把那几条代码注释掉了。我还是建议你使用jRDC2来连接MSSQL 的数据库。
 

cxbs

Active Member
Licensed User
Longtime User
MSSQL 在安卓9以后就不允直连了,必须要关闭限制才可以连
B4X:
Sub DisableStrictMode '禁止检查
   Dim jo As JavaObject
   jo.InitializeStatic("android.os.Build.VERSION")
   If jo.GetField("SDK_INT") > 9 Then
     Dim policy As JavaObject
     policy = policy.InitializeNewInstance("android.os.StrictMode.ThreadPolicy.Builder", Null)
     policy = policy.RunMethodJO("permitAll", Null).RunMethodJO("build", Null)
     Dim sm As JavaObject
     sm.InitializeStatic("android.os.StrictMode").RunMethod("setThreadPolicy", Array(policy))
   End If
End Sub
 
Top