相关疑难解决方法(0)

无法开始分布式事务:链接服务器 - > Access数据库

眼镜:

  • Sql Server 2008
  • Server 2008 R2 64位
  • MS Access数据库

什么有效:

  • 我通过安装Office访问数据组件并创建系统DSN等来配置到Access数据库的链接服务器连接.它驻留在同一服务器上的目录中.
  • 我已成功通过openquery查询数据.

    SELECT*FROM OPENQUERY(LINKEDHELL,'SELECT*FROM [D:\ path\mordor.mdb] .Orcs')

  • 我可以通过openquery插入/更新/删除(从Sql Management Studio内部)

什么行不通:

我创建了一个数据库,它公开了一个包含openquery表达式的视图.这允许我的应用程序不知道它通过链接服务器连接查询并允许我使用ORM的事实.例证:实体框架.

但是,在检索数据时,更新/插入/删除不会.我花了很多时间确保MSDTC配置正确,但没有骰子.

我尝试了什么

MSDTC

  • 启用网络DTC访问
  • 允许入站/出站
  • 配置防火墙
  • 启用XA事务
  • 给DTC工作的帐户访问.mdb
  • 进行这些设置后重新启动Sql Server

其他

  • 配置的链接服务器安全性:在sql用户和本地管理员帐户之间创建映射,这样当我使用该sql用户登录时,它使用本地管理员帐户连接到访问数据库.
  • 启用RPC的分布式事务升级:False

我得到的错误:

OLE DB provider "MSDASQL" for linked server "LINKEDHELL" returned message "[Microsoft][ODBC Microsoft Access Driver]Invalid attribute/option identifier ".
Msg 7391, Level 16, State 2, Line 4
The operation could not be performed because OLE DB provider "MSDASQL" for linked server "LINKEDHELL" was unable to …
Run Code Online (Sandbox Code Playgroud)

ms-access msdtc odbc linked-server sql-server-2008

6
推荐指数
1
解决办法
3219
查看次数

回滚MS Access中的多个SQL更新查询

我在MS Access中的VBA中执行了多个SQL存储过程(例如UPDATE,SELECT INTO语句):

CurrentDb.Execute"qry1"
CurrentDb.Execute"qry2"

我希望如此:
*如果qry2失败,它将撤消qry1.
*qry1和qry2同时执行,(因为我在链中执行了许多这些存储过程),因此程序运行得更快.

如何才能做到这一点?

sql database ms-access

5
推荐指数
1
解决办法
5760
查看次数

标签 统计

ms-access ×2

database ×1

linked-server ×1

msdtc ×1

odbc ×1

sql ×1

sql-server-2008 ×1