Foxtable(狐表)用户栏目专家坐堂 → 1月20日更新,运行中创建和切换数据源


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

主题:1月20日更新,运行中创建和切换数据源

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
1月20日更新,运行中创建和切换数据源  发帖心情 Post By:2009/1/20 12:40:00 [只看该作者]

运行中创建和切换数据源


外部数据源通常是事先定义好的,利用项目事件BeforeConnectOuterDataSource,可以在打开项目的时候,动态地改变数据源。
但是很多时候,我们希望在运行过程中,动态地改变数据源,甚至让同一个表显式不同数据源中的数据,针对这种需要,FoxTable提供了下面的解决方案。


AddConnection


这个函数用于动态增加数据源。


语法:


AddConnection(ConnName, ConnString)

ConnName:   新增数据源的名称。
ConnString:  新增数据源的链接字符串。


例如:

AddConnection("test","Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\abc.mdb;Persist Security Info=False")



ChangeConnection


这是DataTable的一个方法,用于切换数据源,语法:

ChangeConnection(ConnName)

ConnName: 数据源名称


例如我们希望订单表加载另一个数据源test中的数据,可以:


DataTables(
"订单").ChangeConnection("test")


一旦切换数据源,就会自动执行DataTable的Load方法,重新加载数据,你可以事先设置好加载条件:


DataTables(
"订单").LoadFilter = "[客户ID] = 'TOMSP'"
DataTables(
"订单").ChangeConnection("test"
)


需要注意的是:如果要切换某个表的数据源,那么新的数据源必须和原来的数据源具有同样名称的一个表,而且结构必须完全相同,否则会带来不可预料的错误。

有了动态创建和切换数据源的功能,使得登录系统后,能够根据用户输入的条件,动态地链接到不同的数据源,加载不同条件的数据,大大地提高了程序的灵活性。我们还可以可以结合
QueryBuilderOuterTableBuilderSQLCommand等类型,进一步扩展动态数据源的用法。


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/1/20 12:41:00 [只看该作者]

这是针对专业用户的功能,一般用户就不要研究了

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


加好友 发短信
等级:五尾狐 帖子:1039 积分:7450 威望:0 精华:0 注册:2008/8/31 22:52:00
  发帖心情 Post By:2009/1/20 12:44:00 [只看该作者]

没看完,先顶了再说。

太需要这个了!


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


加好友 发短信
等级:五尾狐 帖子:1039 积分:7450 威望:0 精华:0 注册:2008/8/31 22:52:00
  发帖心情 Post By:2009/1/20 12:54:00 [只看该作者]

可以预先设计好某个数据源中需要的表和字段(将写好的SQL查询语句放在内部表里面,这样修改、增加、维护很方便)

再结合QueryBuilder 使用,可以高度自动化地查询不同数据源中的需要的不同表和不同字段了!而且速度会很快的!

我见有些专业软件是这样搞的,当时不明白为什么单元格里有那多SQL查询语句,现在清楚了

可以自己搞定了!

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


加好友 发短信
等级:五尾狐 帖子:1039 积分:7450 威望:0 精华:0 注册:2008/8/31 22:52:00
  发帖心情 Post By:2009/1/20 12:55:00 [只看该作者]

接下来,要研究一下“连接字符串”的定义规则了。

不知有没有哪位大师了解这个!

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2009/1/20 13:55:00 [只看该作者]

以下是引用wcs在2009-1-20 12:55:00的发言:
接下来,要研究一下“连接字符串”的定义规则了。

不知有没有哪位大师了解这个!


看这个:

http://www.connectionstrings.com/

注意foxtable用的是Oledb


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


加好友 发短信
等级:五尾狐 帖子:1039 积分:7450 威望:0 精华:0 注册:2008/8/31 22:52:00
  发帖心情 Post By:2009/1/20 14:43:00 [只看该作者]

全部是英文的,

看了一下,如果是sql的数据源,就用 .NET Framework Data Provider for OLE DB?

[此贴子已经被作者于2009-1-20 14:45:26编辑过]

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7258 积分:40773 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2009/1/20 18:47:00 [只看该作者]

顶!


 回到顶部