--先执行下面语句试试
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ

解决方案 »

  1.   

    ldserver  为通过数据库外部链接 的另外一台数据库服务器,
    并且链接的时候是用SA链接的,所以应该不存在权限问题。
      

  2.   

    回复人: zlp321002(她是我的唯一.) ( ) 信誉:104  2006-01-04 18:40:00  得分: 0  
       --创建连接后,在本地操作和远程操作擂同。
    -------------------------------------------是的,操作基本上是一样的。
    关键是为什么会出现这个错误
      

  3.   

    declare ml_abc cursor local forward_only read_only for  ...
      

  4.   

    1 你去检查一下这张表有没有索引 如果有 通过select...into 建一张无索引无主键的表 然后建立这个游标 结果如何?2 declare ml_abc INSENSITIVE cursor local forward_only for 看什么结果3 set transaction isolation level repeatable read
    Begin tran
    declare ml_abc cursor local forward_only for   
      select prd_no,bat_no,qty,cst from ldserver.db_sdld.dbo.tf_ml tf_ml where mo_no = @mo_no  --根据制令单查询该制令单领料情况
    open ml_abc
       fetch next
       from ml_abc into @prd_no,@bat_no,@qty,@cst
    while (@@fetch_status = 0 )  --通过循环计算该制令单的成本
        begin
         
          fetch next  from ml_abc into @prd_no,@bat_no,@qty,@cst
       endset transaction isolation level read committed 又是什么结果?
      

  5.   

    楼主 你换成SP可以实现吗?
    --------------------------
    我换成sp也不能实现。
      

  6.   

    2 declare ml_abc INSENSITIVE cursor local forward_only for 看什么结果
    ----------------------------------------------------------------------
    消息 1049,级别 15,状态 1,第 2 行
    Mixing old and new syntax to specify cursor options is not allowed.改为:
    declare ml_abc INSENSITIVE cursor for 
    ---------------------------------------
    结果跟没有更改前是一模一样的。
      

  7.   

    问题已经解决,解决办法用了  rouqu(石林#黄果树) 的方法,解决办法如下:declare ml_abc INSENSITIVE cursor for 
    即加上 INSENSITIVE 关键字即可。
    附:
    游标的敏感性行为定义了对基行(用于建立游标)所做的更新是否对游标可见。敏感性也定义了能否通过游标进行更新。如果在 Transact-SQL DECLARE 语句中指定了 INSENSITIVE 关键字,或在 ODBC 中将 SQL_ATTR_CURSOR_SENSITIVITY 设置为 SQL_UNSPECIFIED 或 SQL_INSENSITIVE,游标将不反映数据修改。游标为只读且不支持更新。如果在 Transact-SQL DECLARE 语句中省略了 INSENSITIVE 关键字,或在 ODBC 中将 SQL_ATTR_CURSOR_SENSITIVITY 设置为 SQL_SENSITIVE,游标可以反映由当前用户所做的或由其他用户提交的数据修改。除使用只读游标外,可以使用游标进行定位更新。