以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  请教,外部数据源是通过一个文件来读取来实现?可否?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=3596)

--  作者:baoxyang
--  发布时间:2009/7/16 14:09:00
--  请教,外部数据源是通过一个文件来读取来实现?可否?
目的,因我这边是通过动态域名形式连接服务器的,动态域名变动机率较大,所以想通过一个文件来设置服务器的IP(动态域名),怎样来实现?
--  作者:smileboy
--  发布时间:2009/7/16 14:39:00
--  

假定有一个名为“销售数据”远程数据源,默认的IP地址为119.119.120.120,因为服务器的调整,IP地址可能会发生变化,导致数据源无法连接。
为解决这个问题,可以在用户管理窗口增加一个名为IP的扩展用户属性,让用户在登录的时候,可以输入另一个IP地址,
然后BeforeConnectOuterDataSource事件中加入下面的代码:

If e.Name = "销售数据" Then
    Dim
IP As String = e.User.ExtendedValues("IP") \'获得用户输入的IP
   
If IP > "" \'如果用户自己输入了IP
        \'则用用户输入的IP替换原来的IP

        e.ConnectionString = e.ConnectionString.Replace(
"119.119.120.120", IP)
    End
If
End
If

你也可以用另一种方法解决,在项目文件目录下创建一个ip.txt的文本文件,在该文件中输入最新的IP地址,并在BeforeConnectOuterDataSource事件中设置如下代码:

Dim ipFile As String = e.ProjectPath & "ip.txt"
If
e.Name = "销售数据" Then
    If
Filesys.FileExists(ipFile) Then
        Dim
ip As String = FileSys.ReadAllText(ipFile)
        e.ConnectionString = e.ConnectionString.Replace("119.119.120.120",ip)
    End
If

End
If