在客户端连接Web数据源
请确保服务端项目已经启动。
在客户端项目连接Web数据源很简单,假定客户端和服务端项目在同一台电脑,为了连接上一节所创建的Web数据源,可以按下图所示输入连接字符串:
现在我们就可以像常规数据源一样,从这个Web数据源中添加数据表到Foxtable,一样可以增加、删除和修改数据,一样可以使用加载树和筛选树,一样可以进行各种统计分析,一样可以进行各种开发,源代码也和以前一样,没有任何特殊之处。
连接Web数据源时,通常需要附加一些表单数据或Cookie数据,服务端据此进行身份验证
Web数据源连接字符串格式为:
http://地址
-FormData-
键1:值1
键2:值2
-Cookies-
键1:值1
键2:值2
第一行为数据源的地址,"-FormData-"行之后为附加的表单数据,"-Cookies-"行之后为附加的Cookie数据。
可以看到Web数据源的创建和连接都很简单,为了方便,可以在开发过程中采用传统数据源,发布前再根据需要改为Web数据源即可,实际上对于已经发布的项目,也可以在传统数据源和Web数据源之间 随意切换。
BeforeConnectOuterDataSource事件
在连接Web数据源之前,一样会触发BeforeConnectOuterDataSource事件,我们可以在这里动态合成连接字符串,合成字符串的时候,必须严格按照上述格式要求。
例如:
If
e.Name =
"Orders" Then
Dim sb
As New
StringBuilder
sb.AppendLine("http://127.0.0.1/DataServer.htm")
sb.AppendLine("-FormData-")
sb.AppendLine("UserName:张三")
sb.AppendLine("Password:888")
e.ConnectionString
= sb.ToString()
End
If
运行过程中创建和修改Web数据源
可以在运行过程中创建一个Web数据源,例如:
Dim
sb As
New StringBuilder
sb.AppendLine("http://127.0.0.1/DataServer.htm")
sb.AppendLine("-FormData-")
sb.AppendLine("UserName:张三")
sb.AppendLine("Password:888")
Connections.Add("Sales",sb.ToString)
你也可以在运行过程中修改Web数据源的属性,例如:
Connections("Orders").DataServer
= "http://127.0.0.1/DataServer.htm"
Connections("Orders").FormData("UserName")
= "李四"
Connections("Orders").FormData("PassWord")
= "999"
Connections("Orders").FormData("AccessToken")
= "asgkfd9is45"
'添加一个新的表单项
提示:
1、上述属性对常规数据源无效。
2、实际开发中,请不要使用UserName和Password这种指向性很明确的词汇作为键名。
3、Foxtable已经占用的键名有: Action、Datatable、IgnoreSchema和Select。请不要在自己的代码中使用以上键名,以免冲突。
判断某个数据源是否可以连通
判断某个数据源是否可以连通的参考代码:
Dim
sb As
New StringBuilder
Dim
Err As
String
sb.AppendLine("http://127.0.0.1/DataServer.htm")
sb.AppendLine("-FormData-")
sb.AppendLine("UserName:张三")
sb.AppendLine("Password:888")
If
Connections.TryConnect(sb.Tostring,
Err) = False
Then
MessageBox.Show(err,"提示",MessageBoxButtons.OK,MessageBoxIcon.Error)
'显示错误信息
Else
MessageBox.Show("数据源可以正常连通!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
End
If