收录日期:2019/02/16 20:14:17 时间:2016/05/30 10:06:24 标签:应用实例
当我在客户端向服务器端插入数据的时候,系统提示错误:
该操作未能执行,因为 OLE DB 提供程序 'SQLOLEDB' 无法启动分布式事务。
[OLE/DB provider returned message: 新事务不能登记到指定的事务处理器中。 ]
我在客户端与服务器端都启动了分布式服务,那么为什么还出现这样的问题呢?
关注
嗨,我发现我的问题都是超难型的,别人根本没遇到过的.郁闷.
这是个问题
重装操作系统后再装数据库吧!我碰到过的,只能这样才能解决!别浪费时间了
能否贴出代码来看看,如果只是针对单一的服务器,应该不用分布式的,是不是服务器的表上有触发器去执行分布式事务?
能否贴出代码来看看,如果只是针对单一的服务器,应该不用分布式的,是不是服务器的表上有触发器去执行分布式事务?
我的是局域网内的数据库。是分布式的。
分布服务的启动帐号不要是本地系统帐号
是不是同时更新两台服务器上的数据,并且添加事务???
如果是局域网可以实现,
但在internet 上这是个绝症,我查阅了无数篇文章,无法搞定·
给你一例:局域网可以实现的。
CREATE PROCEDURE gsh_TransferData_down(@dwbh varchar(2)) AS
declare @ssql varchar(400)
declare @serverip varchar(20)
declare @password varchar(40)
--declare @dwbh varchar(2)
--select @dwbh='06'

set XACT_ABORT on
set REMOTE_PROC_TRANSACTIONS on
if @dwbh='00' goto finish
DECLARE curName CURSOR  for 
select top 1 值 from 常量 where 项='服务器ip' and 单位=@dwbh
OPEN curName
WHILE 1 = 1
BEGIN
       FETCH NEXT FROM curName INTO @serverip
          IF @@fetch_status <> 0  BREAK
      END
close curName
DEALLOCATE curName

DECLARE curName CURSOR  for 
select top 1 值 from 常量 where 项='密码' and 单位=@dwbh
OPEN curName
WHILE 1 = 1
BEGIN
       FETCH NEXT FROM curName INTO @password
          IF @@fetch_status <> 0  BREAK
      END
close curName
DEALLOCATE curName

begin distributed transaction t1


select @ssql='insert into recieveSql(发送单位,语句,接收单位,操作表,接收时间,原编号,类型,操作员,文件)
SELECT 发送单位,语句,'','+@dwbh+','',操作表,getdate(),编号,类型,操作员,文件 FROM 
OPENROWSET(''MSDASQL'', ''Driver=SQL Server;Server='+@serverip+';UID=sa;PWD='+@password+''',transferERP.dbo.sendsql)
where 接收单位 like ''%,'+@dwbh+',%'' and 执行单位 not like ''%,'+@dwbh+',%'' order by 编号'
--print @ssql
exec (@ssql)

select @ssql='update OpenRowset(''MSDASQL'', ''Driver=SQL Server;Server='+@serverip+';UID=sa;PWD='+@password+''',transferERP.dbo.sendsql) 
set 执行单位=执行单位+(case 执行单位 when '''' then '','+@dwbh+','' else '''+@dwbh+','' end) where 接收单位 like ''%,'+@dwbh+',%'' and 执行单位 not like ''%,'+@dwbh+',%'''

--print @ssql
exec (@ssql)

if @@error<>0 goto err
commit tran t1
goto finish

err:
rollback tran t1

finish:
set XACT_ABORT off
set REMOTE_PROC_TRANSACTIONS off
GO

conn.execute(sql)和rs1.delete哪个执行效率高? 在dbgrid怎样实现按列名排序 关于记录输入的有效性。 如何获得USB设备的字符名称 在.NET中怎么读取.txt文件呢?-----------------! 菜鸟问题!数据输出问题!急急急!!! 如何清楚快速清除数组中的所有内容? eclipse中如何实现可视化设计界面呀?比如在窗体上放上按钮,表格,组合框,等控件呀?(控件工箱在那里?) 毕业半年,无编程经验,如何当好项目经理?恳请大家帮忙 汇编新手提问,谢谢 SCJP经典题 Exchange 2000 安装不上异常 为什么会这样?表单事件的问题。 JMS到底是用做干什么得???? asp问题 大家知道的帮帮忙 找了一个晚上,难道没有人想捕获鼠标水平滚轮消息? 搞不定,help!!关于自绘按钮, Session.removeAll 与 Session.Clear的区别? 求助:高人请急救 系统问题 帮忙看看这个递归错在哪里?数据只能出来一行 使用代理方式实现的AOP中,如何实现当方法被拦截时,访问方法所属的对象。 如何改变生成exe的图标 请问南京有什么好的软件公司 急求Active Directory 架设教程~~~~~~~!!! 为什么在c盘格式划后,重转系统后,桌面的右下角所有盘都为移动硬盘???? 又一道yahoo的面试题找错误,搞不动为什么在局部函数内的static的问题 请问有POCKET PC 2005 的SDK吗? 最常用的32位c语言编译器是什么? 关于hibernate中的generator问题 GOTO的苦惱!!