BeforeConnectOuterDataSource
这个事件是专业用户才用得着的,普通用户不需要研究它。
准备连接外部数据源的时候执行,可以在此修改连接字符串。
e参数属性:
Name: 外部数据源名称
User: 登录用户
ProjectFile: 项目文件名,含路径。
ProjectPath: 返回项目文件所在目录
ConnectionString: 返回或设置连接字符串。
HideSplashForm: 逻辑型,设为True,关闭Foxtable的启动封面。
有两点要注意:
Foxtable使用的数据提供程序是OLE DB .NET。数据源最好是SQL SERVER 或者 ACCESS。
一,Access格式的外部数据源和SQL2008格式的外部数据源是否一样?
1下面是Access格式的外部数据源的实例
假定有一个成绩管理系统,使用的是一个Access格式的外部数据源,外部数据源的名称为“成绩”,外部数据文件名为"成绩数据.mdb",和项目文件处于同一目录之下。
为了保证这个项目复制到任何目录都能正常链接该外部数据源,可以在BeforeConnectOuterDataSource事件中加入下面的代码:
If e.name = "成绩" Then
e.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & e.ProjectPath & "成绩数据.mdb;Persist Security Info=False"
End if
2下面是SQL2008格式的外部数据源是否是正确?
If e.name = "成绩SQL" Then
e.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & e.ProjectPath & "成绩数据SQL.mdb;Persist Security Info=False"
End if
二,为了保证这个项目复制到任何目录都能正常链接该外部数据源,SQL2008格式的外部数据源,Access格式的外部数据源可以在BeforeConnectOuterDataSource事件中加入下面的代码:而且可以允许多个SQL2008格式的外部数据源,Access格式的外部数据源存在,这样理解?
Access格式
If e.name = "成绩" Then
e.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & e.ProjectPath & "成绩数据.mdb;Persist Security Info=False"
End if
SQL2008格式
If e.name = "成绩SQL" Then
e.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & e.ProjectPath & "成绩数据SQL.mdb;Persist Security Info=False"
End if