你的MSSQL“服务管理器”中的“Distributed Transaction Coordinator”启动没有?
我也遇到了,win2000的分布式问题,但是和你的不大相同。

解决方案 »

  1.   

    win2000下的MSDTC是开启了网络访问功能的,基本上启动了就不用怎么设置
      

  2.   

    to ashzs((可以包含中文字符)):Distributed Transaction Coordinator都已经启动,但登录用户都是local system.
    to lovcal(枫兮):不设置的话,您的分布式事务能正确执行吗?
      

  3.   

    win2000下不用设置阿,我的笔记本是win2003的,测试机器有几台是win2000Server,还有几台也是Win2003,一般2000中不会出什么问题的,目前为止,呵呵
    一回我试试你的语句
      

  4.   

    我这里测试没问题啊
    不过是使用SQLOLEDB而不是MSDASQL
    直接使用连接服务器也没问题的很有可能是你的2000的MSDTC出问题了
    试试把2000的机子MSDTC重撞一下
      

  5.   

    是啊,兄弟,我的问题也是和你的一样啊,Windows2000 Server,企业版或者标准版的SQL2000都试过了。
    出错提示和你的完全一致:
    我的是在触发器里面执行的,请高手过目一下,看看如何解决,触发器代码如下:
    **********************************************************************************
    CREATE TRIGGER Trigger_USERINFO_UPDATE 
    ON TB_USERINFO 
    FOR UPDATE 
    AS 
    set  XACT_ABORT on
    IF UPDATE (UserPwd) BEGIN 
       
       --更新本地另外一个数据库的例子
       Update T2 set UserPwd=dbo.fn_md5(Rtrim(Ltrim(T1.UserPwd))) from TB_USERINFO T1 Inner Join PKJPFORUMDB..TB_USERINFO T2 On T1.UserAccount=T2.UserAccount
       --更新异地链接数据库的方式,因为分布式事务处理的问题,目前没有调试通过
       --R_DB001是建立的一个链接服务器
       Update T2 set password=T1.UserPwd from TB_USERINFO T1 Inner Join R_DB001.AccountDB.dbo.Account T2 On T1.UserAccount=T2.Account
           
    END 
    SET XACT_ABORT OFF
    **********************************************************************************执行:update tb_userinfo set UserPwd='hello' where UserAccount='testuser'
    提示出错:
    服务器: 消息 7391,级别 16,状态 1,过程 Trigger_USERINFO_UPDATE,行 12
    该操作未能执行,因为 OLE DB 提供程序 'MSDASQL' 无法启动分布式事务。
    [OLE/DB provider returned message: [Microsoft][ODBC SQL Server Driver]分布事务处理错误]
    OLE DB 错误跟踪[OLE/DB Provider 'MSDASQL' ITransactionJoin::JoinTransaction returned 0x8004d00a]。
      

  6.   

    是啊,2000下面是应该也支持这种分布式查询和操作的啊,MSDTC都启动了
      

  7.   

    to lovcal(枫兮) :
    我重装过msdtc了。步骤:
    net stop msdtc->msdtc -uninstall->删除msdtc注册表项->msdtc -install->net start msdtc
    仍然无效。用dtcpping 工具测试均正常。真是头疼请问您的win2000版本,sql server2000版本,mdac版本?有没有安装.net环境?谢谢!
      

  8.   

    to sxycgxj(云中客):
    您认为应怎样设置权限为妥?
      

  9.   

    to szvip2008(不灭的神话):
    呵呵,同病相怜啊……
      

  10.   

    学习 SQL Server-----------------------------------------------------
      

  11.   

    to  ymli(阿立) :
    我的环境不行是通过.net进行分布式事务时出现错误。
    我前几个月也找了很久,没有发现任何可用信息。在win2003下没这个问题。
    怀疑win2000的问题。共同关注。
      

  12.   

    最近有好多人提这个问题但我感觉也很奇怪,我这没有问题啊我的环境:
    Win2000Profasional(盗版)+SQLServer2000(盗版+SP3补丁)+ VC6.0+Delphi6.0
    Win2003Server(政府专用正版)+SQLServer2000(盗版+SP3补丁)+ VC6.0+Delphi6.0有人测试了,在2000里用链接服务器更新2003的数据,不成功,只能够Select
    2003对2000正常呵呵,比较奇怪,目前我发现只有(Win2003政府专用正版)这一项有可能不同,其他的就没了
      

  13.   

    试试看:打开注册表,HKEY_LOCAL_MACHINE\Software\Microsoft\MSDTC
    AllowonlySecureRpcCalls=0
    TurnoffRpcSecurity=1
      

  14.   

    http://blog.csdn.net/lovcal/archive/2005/12/13/550965.aspx
      

  15.   

    lovcal(枫兮):非常感谢您的热心!按您的说法,我在win2003机器上:
    AllowonlySecureRpcCalls=0
    TurnoffRpcSecurity=1
    在一台试验用的2000server机器上也加上这两个值,居然成功了!再把两台机器的注册表恢复原样,居然也没问题。但在另一台win2000生产服务器srv3上(不是同一个域)实际试验却不行,我找找其他原因先。