以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  access测试连接失败  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=174139)

--  作者:lgz518
--  发布时间:2022/1/4 10:21:00
--  access测试连接失败

access数据源没有加密码,可连接,加上密码就报错,提示下面:如何解决?谢谢,狐表是最新版本

access测试连接失败。因为初始化提供程序发生错误,无法启动应用程序,工作组信息文件 丢失,或已被其它用户以独占方式打开。




--  作者:有点蓝
--  发布时间:2022/1/4 10:22:00
--  
http://www.foxtable.com/webhelp/topics/1808.htm,看第6点
--  作者:lgz518
--  发布时间:2022/1/4 11:04:00
--  

如果数据文件设置有密码,那么按下图所示操作:

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

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


按上面操作,选择允许保存密码,还是报错,如图一,选择允许保存密码和空白密码,才通过,通常有密码时,选择保存密码才是对,如果允许空白密码,那不是这样数据源还是个空密码,会不会存在不安全?


图片点击可在新窗口打开查看此主题相关图片如下:access连接报错.jpg
图片点击可在新窗口打开查看





--  作者:有点蓝
--  发布时间:2022/1/4 11:06:00
--  
和“允许保存密码”没有半点关系,仍然是勾选空白密码
--  作者:lgz518
--  发布时间:2022/1/4 11:42:00
--  

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



--  作者:有点蓝
--  发布时间:2022/1/4 11:44:00
--  
不同数据库的连接字符串肯定是不一样的。按常规方式创建一个SqlServer的数据源,照抄里面的连接字符串