以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关于数据源的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=9140)

--  作者:mr725
--  发布时间:2011/2/26 16:06:00
--  关于数据源的问题

系统自带的例子: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 等事件中(所制定的数据源)的代码可以照样执行呢?

 

 

[此贴子已经被作者于2011-2-26 16:15:44编辑过]

--  作者:狐狸爸爸
--  发布时间:2011/2/26 17:28:00
--  

在菜单中设置的数据源,是早期开发使用,开发即将结束后,将数据文件复制到项目目录,同时设置BeforeConnectOuterDataSource 事件代码,连接项目目录下的数据文件。

一旦设置BeforeConnectOuterDataSource ,那么原来通过菜单设置的数据源的数据文件未知,不再有任何的意义了。

 

 

[此贴子已经被作者于2011-2-26 17:31:53编辑过]

--  作者:mr725
--  发布时间:2011/2/26 21:36:00
--  
以下是引用狐狸爸爸在2011-2-26 17:28:00的发言:

在菜单中设置的数据源,是早期开发使用,开发即将结束后,将数据文件复制到项目目录,同时设置BeforeConnectOuterDataSource 事件代码,连接项目目录下的数据文件。

一旦设置BeforeConnectOuterDataSource ,那么原来通过菜单设置的数据源的数据文件未知,不再有任何的意义了。

 

 

[此贴子已经被作者于2011-2-26 17:31:53编辑过]

好像有点问题吧,在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 的准报错···· 如图:


图片点击可在新窗口打开查看此主题相关图片如下:未命名0.jpg
图片点击可在新窗口打开查看

--  作者:狐狸爸爸
--  发布时间:2011/2/27 7:51:00
--  

哈哈,这是因为这个表没有主键造成的,没有主键的表只能作为查询表啊。

图片点击可在新窗口打开查看