存储过程的大意是:单击某一按钮后执行从某一个表中取出几十条记录插入另外一个表中,我在“查询分析器”执行的时候不出错,而在程序中执行的时候就出错,报出的错误是: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
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
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货