存储过程的大意是:单击某一按钮后执行从某一个表中取出几十条记录插入另外一个表中,我在“查询分析器”执行的时候不出错,而在程序中执行的时候就出错,报出的错误是:ADOStoredProc1:CommandText does not return a result set. 我在程序中调用的语句为:ADOStoredProc1.Parameters.ParamByName('@EMPLOYEENO').Value :='ASDF';
ADOStoredProc1.Open ;
存储过程为:
CREATE Procedure [MenuGrant] 
@EmployeeNo varchar(20) 
AS
    BEGIN    TRANSACTION
declare  
@MenuID Integer,
@MenuName varchar(100),
@MenuPositionX integer,
@MenuPositionY integer,
@MenuPositionZ Integer,
@Flag bit
           
   DECLARE tmp_cursor CURSOR FOR 
        SELECT MenuID,MenuName,MenuPositionX,MenuPositionY,MenuPositionZ,Flag FROM PUMenu
        OPEN tmp_cursor
        FETCH NEXT FROM tmp_cursor INTO
                       @MenuID,@MenuName,@MenuPositionX,@MenuPositionY,@MenuPositionZ,@Flag   
               WHILE @@FETCH_STATUS = 0
                BEGIN
                      INSERT PuEmployeeGrant(EmployeeNo,MenuID,MenuName,MenuPositionX,MenuPositionY,MenuPositionZ,Flag)  
                      VALUES(@EmployeeNo,@MenuID,@MenuName,@MenuPositionX,@MenuPositionY,@MenuPositionZ,@Flag)             
                      FETCH NEXT FROM tmp_cursor INTO
                       @MenuID,@MenuName,@MenuPositionX,@MenuPositionY,@MenuPositionZ,@Flag
                END
   
      CLOSE  tmp_cursor
      DEALLOCATE tmp_cursor
  COMMIT TRANSACTION
Return(0);
GO