加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SqlServer T-sql 连接 访问 access 数据库 字符串

发布时间:2020-12-12 15:25:35 所属栏目:MsSql教程 来源:网络整理
导读:SqlServer T-sql 连接 访问 access 数据库 字符串 【转】 http://hi.baidu.com/louishunt/blog/item/40963c8afe1965749f2fb410.html ? SELECT * FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0', 'Data Source="F:/test.mdb";User ID=admin;Jet OLEDB:Datab

SqlServer T-sql 连接 访问 access 数据库 字符串

【转】 http://hi.baidu.com/louishunt/blog/item/40963c8afe1965749f2fb410.html

?

SELECT *
FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
'Data Source="F:/test.mdb";User ID=admin;Jet OLEDB:Database Password=备注1')...备注2

注释:备注1 代表 当前access文档的密码。
?????????? 备注2 代表 要访问的表名



参考1:
当程序用ado的jet4.0方式连接的时候,对于设有access数据库密码的mdb的访问居然报错“无法启动应用程序,工作组信息文件丢失,或是已被其他用户已独占方式打开”,而用odbc方式不报错,小阴沟里翻船,郁闷中然后查文档解决之:

错误 7399
严重级别 16
消息正文
OLE DB 提供程序 ''%1!'' 报错。%2!

无法启动应用程序。工作组信息文件丢失,或是已被其它用户以独占方式打开。

解释
用于 Jet 的 Microsoft OLE DB 提供程序返回的错误信息表明以下情况之一:

Microsoft? Access 数据库不是受保护的数据库,且指定的登录和密码不是无密码的 Admin。


Access 数据库受到保护,并且 HKEY_LOCAL_MACHINE/Software/Microsoft/Jet/4.0/SystemDB 注册表键值未指向正确的 Access 工作组文件。受保护的 Access 数据库具有相应的工作组文件,其中包括应由上面的注册表键值指出的完整路径。
对策
验证当前 Microsoft SQL Server? 的登录是否映射为无密码的 Admin。

如果正在访问的 Access 数据库受到保护,请确保上面的注册表键值指向 Access 工作组文件的完整路径名。


ADOConnection.ConnectionString= "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False; Password=Psd;Data Source=filename.mdb"

程序运行到ADOConnection.open时出错,显示“无法启动应用程序,工作组信息文件丢失,或是已被其他用户已独占方式打开。”请问该OPEN语句该这样写?
??? 注:该ACCESS数据库安装在服务器上,要求多用户可同时使用!
??? 水平: 中级(周明)
问题出在:
??? ADOConnection.ConnectionString= "Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False; Password=Psd;Data Source=filename.mdb"
??? 不能用Password的形式定义数据库密码,应该改成:
??? Provider=Microsoft.Jet.OLEDB.4.0;Data Source=filename.mdb ;Persist Security Info=False;Jet OLEDB:Database Password=Psd???

改了后就能够正常使用了,nnd,原来jet着鸟对于设置密码的mdb要用到windows的用户和组角色的设置的,以示安全,可tmd最可笑的是mdb的密码是单独存放的,脆弱的一踏糊涂,用一个小软件一看就能看到了,就象马奇诺防线,前面铜墙铁壁的,可德国人从后面抱了个园,谁和你正面作战呀,真可悲。。。。。
参考2:
出现: 消息15281,级别16,状态1,第1 行
SQL Server 阻止了对组件'Ad Hoc Distributed Queries' 的STATEMENT'OpenRowset/OpenDatasource' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用sp_configure 启用'Ad Hoc Distributed Queries'。有关启用'Ad Hoc Distributed Queries' 的详细信息,请参阅SQL Server 联机丛书中的"外围应用配置器"。
解决:
打开OPENDATASOURCE功能
开始 —>

所有程序 —> Microsoft SQL Server 2005 —> 配置工具 —> SQL Server外围应用配置器 —> 功能的外围应用配置器 —> 实例名 —> Database Engine —> 即席远程查询 —> 启用OpenRowset和OpenDatasource支持。否则,会报错:消息 15281,级别 16,状态 1,第 1 行SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset/OpenDatasource' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用 sp_configure 启用 'Ad Hoc Distributed Queries'。有关启用 'Ad Hoc Distributed Queries' 的详细信息,请参阅 SQL Server 联机丛书中的 "外围应用配置器"。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读