Rss & SiteMap
Foxtable(狐表) http://www.foxtable.com
系统自带的例子:SQL与自动输入.table 中,
1、项目属性 BeforeConnectOuterDataSource 事件:
If e.name = "行政区域" Then
e.Connection String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & e.ProjectPath & "行政区域.mdb;Persist Security Info=False"
End If
2、在 数据表 - 外部数据源 所设置的数据源为:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\chmHelp\CaseStudy\行政区域.mdb;Persist Security Info=False
注意: e.ProjectPath & "行政区域.mdb 和 F:\chmHelp\CaseStudy\行政区域.mdb 并不是同一个数据源!即:ProjectPath 不等于 F:\chmHelp\CaseStudy 。
3、问题来了: 在项目属性 AfterOpenProject事件中的 cmd.Connection Name = "行政区域" , 这里数据源是指的上面那个数据源呢? 为何在 F:\chmHelp\CaseStudy\行政区域.mdb 根本不存在的情况下,表属性中 PrepareEdit 等事件中(所制定的数据源)的代码可以照样执行呢?
在菜单中设置的数据源,是早期开发使用,开发即将结束后,将数据文件复制到项目目录,同时设置BeforeConnectOuterDataSource 事件代码,连接项目目录下的数据文件。
一旦设置BeforeConnectOuterDataSource ,那么原来通过菜单设置的数据源的数据文件未知,不再有任何的意义了。
在菜单中设置的数据源,是早期开发使用,开发即将结束后,将数据文件复制到项目目录,同时设置BeforeConnectOuterDataSource 事件代码,连接项目目录下的数据文件。
一旦设置BeforeConnectOuterDataSource ,那么原来通过菜单设置的数据源的数据文件未知,不再有任何的意义了。
好像有点问题吧,在1楼所述项目中增加一个窗口,加入一个SQLTable类型的Table ,试一下下面两个 Fill :
1、 Tables("窗口1_Table1").Fill("Select * From {行政区域}", "行政区域",True)
2、 Tables("窗口1_Table1").Fill("Select * From {行政区域}", "行政区域",False)
或者干脆用: DataTables("客户").Fill("Select * From {行政区域}", "行政区域",False)
结果: 后两个带 False 的准报错···· 如图:
哈哈,这是因为这个表没有主键造成的,没有主键的表只能作为查询表啊。