Foxtable(狐表)用户栏目专家坐堂 → 怎样让自己开发的软件和数据源的指向无关?


  共有9467人关注过本帖树形打印复制链接

主题:怎样让自己开发的软件和数据源的指向无关?

帅哥哟,离线,有人找我吗?
Fotable
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1015 积分:6979 威望:0 精华:0 注册:2012/8/1 18:41:00
怎样让自己开发的软件和数据源的指向无关?  发帖心情 Post By:2012/9/14 15:55:00 [只看该作者]

开发好了一个软件,你自己有一个测试实验数据源。

交付给客户使用后,客户有自己的数据源。

怎样让这种交付无缝化呢。

采用什么方法来处理?

1、在BeforeConnectOuterdatasource 事件里,弹出对话框,让客户自己来编辑数据源。(每次都让客户自己设定,不是很繁琐吗?)

2、在程序文件夹下建立 congfig.ini文件 把数据源连接串存在里面。(foxtable有读取ini文件的方法吗?)

3、把连接数据源信息存储在注册表里(foxtable如何读取注册表)

 

 

还有什么方法吗?大家使用的是哪种?哪种方法好一些。

[此贴子已经被作者于2012-9-14 15:59:54编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
lin_hailun
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:6708 积分:34304 威望:0 精华:11 注册:2012/8/18 23:10:00
  发帖心情 Post By:2012/9/14 16:05:00 [只看该作者]

 结合最好。

 自定义窗口连接数据源,连接成功,保存到本地文件。

 注册表 http://www.foxtable.com/help/topics/2051.htm

 回到顶部
帅哥哟,离线,有人找我吗?
cctv2cctv
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:47 积分:442 威望:0 精华:0 注册:2012/6/20 5:48:00
  发帖心情 Post By:2012/9/14 16:11:00 [只看该作者]

把数据库放在程序目录下,要哪个就覆盖一下

 回到顶部
帅哥哟,离线,有人找我吗?
Fotable
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1015 积分:6979 威望:0 精华:0 注册:2012/8/1 18:41:00
  发帖心情 Post By:2012/9/14 16:21:00 [只看该作者]

 

SaveConfigValue

保存设置信息

语法:

SaveConfigValue(Name, Value)

Name:  设置名称
Value: 设置值

设置信息经过加密储存,安全性比一般的方式更有保证。

 

 

这个config是存储在哪个文件内呢


 回到顶部
帅哥哟,离线,有人找我吗?
blackzhu
  5楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:狐仙 帖子:9875 积分:57584 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2012/9/15 8:10: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

示例五

你也可以在连接某一数据源之前,执行方法EditConnectionString,让用户手工设置连接字符串。
例如你希望在连接“销售数据”的时候,如果登录用户为开发者,则显示数据连接窗口,让用户手动选择外部数据源

If e.User.Type = UserTypeEnum.Developer Then
    e.EditConnectionString()

End
If


 回到顶部
帅哥哟,离线,有人找我吗?
shenyl0211
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:977 积分:6835 威望:0 精华:0 注册:2012/4/2 21:49:00
  发帖心情 Post By:2012/9/15 10:55:00 [只看该作者]

项目文件的扩展名和路径都是不一样的,因此,用if语句就可以搞定了。

 回到顶部