以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]使用多个外部数据源遇到的问题?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=19754)

--  作者:新福星
--  发布时间:2012/5/20 17:20:00
--  [求助]使用多个外部数据源遇到的问题?
在一个项目中,用了多个外部数据源,并增加外部数据表也正常。可是若在这个项目中的BeforeConnectOuterDataSource事件 中加入代码
e.C & e.ProjectPath & "管理数据.mdb" & ";Persist Security Info=False"
运行这个项目后,原来设置的多个外部数据源增加的外部数据表就不能正常工作了!

这时若增加不是上述指定的外部数据源所属的外部数据表,则告警《

要加载的外部数据表没有设置主键,请使用添加外部查询表的命令加载!》

这个问题应该怎样解决呢?谢谢!

--  作者:新福星
--  发布时间:2012/5/20 17:37:00
--  
图片怎么发不上去?发帖子有的语句被自动过滤掉了!想发个图片怎么发不了! 添加附件 上传附件 可就是没看到图片发哪去了
--  作者:新福星
--  发布时间:2012/5/20 17:40:00
--  
已经告诉我2个文件上传成功了!怎么就是看不到图片在哪?
--  作者:狐狸爸爸
--  发布时间:2012/5/21 8:27:00
--  

如果十多个数据源,你可以得判断一下数据源名称:

 

If e.name = "成绩数据" Then
   e.Connection String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & e.ProjectPath & "成绩数据.mdb;Persist Security Info=False"
ElseIf e.name = "生产数据" Then
    e.Connection String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & e.ProjectPath & "生产数据.mdb;Persist Security Info=False"
End if

 

不做判断的话,所有的数据源都会连接到同一个mdb文件,当然就会出错了


--  作者:新福星
--  发布时间:2012/5/21 9:25:00
--  
谢谢狐爸!
如果多外部数据源,如何在 BeforeConnectOuterDataSource 这个事件下写程序呢?
另外在程序中使用了  cmd.ConnectionName = 数据源名     和 e.Connec tion String = "P rovider=Microsoft.Jet.OLEDB.4.0;Data Sou rce=" & e.Pro jectPath & "生产数据.mdb;Persist Security Info=False"这个语句是什么关系?是等同的么?

--  作者:狐狸爸爸
--  发布时间:2012/5/21 9:42:00
--  
4楼不就是多数据源下的例子吗?
--  作者:新福星
--  发布时间:2012/5/21 9:47:00
--  
这个事件BeforeConnectOuterDataSource是在准备连接外部数据源的时候执行;  执行c md.ConnectionName = 数据源名  时是不时就是连接外部数据源的时候?
每执行一次c md.ConnectionName = 数据源名 语句就执行就触发BeforeConnectOuterDataSource事件么?


--  作者:狐狸爸爸
--  发布时间:2012/5/21 11:07:00
--  

执行:

c md.ConnectionName =“数据源"

 

 不会连接数据源。

 

只有打开项目的时候才会连接数据源,BeforeConnectOuterDataSource也只有在打开项目的时候执行。

 


--  作者:新福星
--  发布时间:2012/5/21 12:09:00
--  
帮助中介绍说,在这个事件 BeforeConnectOuterDataSource 中,可以读取一个文件确定一个局域网内的外部数据源。 
现在问题是,在发布程序时,如何在 BeforeConnectOuterDataSource 这个事件中确定多个外部数据源呢?

--  作者:新福星
--  发布时间:2012/5/21 17:51:00
--  
BeforeConnectOuterDataSource事件只有在打开项目的时候执行,且仅执行一次。...那么按照4楼介绍的方法,岂不只联接上一个外部数据库?那其它的外部数据库怎么联接呢?请老师解惑!