日期:2014-05-18  浏览次数:20701 次

winform里执行存储过程,存储过程中的游标部分不执行是为什么?
winform里执行存储过程,存储过程中的游标部分不执行是为什么?

我的存储过程sp1里有以下一段内容
……
delete from t_warehouseStock

DECLARE ItemBom_cursor CURSOR  
  FOR SELECT FitemID FROM table1 group by FitemID
  Open ItemBom_cursor
  Fetch Next From ItemBom_cursor into @id
  while @@Fetch_status=0
  begin
insert into t_warehouseStock(FitemID,FBatchNo,FBomInterID,ICinvQty,InQty,OutQty,PlinQty) exec sp @ID
  Fetch Next From ItemBom_cursor into @FitemID,@FBomInterID
  end
  Close ItemBom_cursor
  DEALLOCATE ItemBom_cursor
/***********************************************************************************/

当我用
  SqlCommand comm = new SqlCommand();
  comm.CommandType = CommandType.StoredProcedure;
  comm.Connection = myConn;
  comm.CommandText = "sp1";
  comm.ExecuteReader();

  SqlCommand comm = new SqlCommand();
  comm.Connection = myConn;
  comm.CommandText = "exec sp1";
  comm.ExecuteNonQuery();
获得的结果,都是sp1执行到“……
delete from t_warehouseStock
”的结果,后面的游标没有执行
但该存储过程在数据库的查询里直接调用,是正常的,游标部分也被正常执行了

------解决方案--------------------
难道你的用户特殊?没有执行游标的权限?
------解决方案--------------------
探讨

难道你的用户特殊?没有执行游标的权限?