积极答复者
ADO下存储过程为何返回的recordset为空

问题
答案
-
if @@ROWCOUNT>0
begin
set @is_exist=1
end
else
begin
INSERT INTO [Actor] ([UsreID],[ActorName]) VALUES (@UsreID,@ActorName)
-----------recordset---------------
SELECT [ActorName],[ActorID] FROM [Actor] WHERE [UsreID]=@UsreID
end晕这个判断的问题吧? 如果存在,则不会有任何结果集返回,只有当不存在的时候,才会插入并返回结果集
- 已标记为答案 sgzwiz2 2014年8月16日 9:58
全部回复
-
ALTER PROCEDURE [dbo].[Create]
@UsreID int,@ActorName varchar(32)
AS
BEGIN
set nocount on
BEGIN TRANSACTION
declare @is_exist as int
set @is_exist=0
BEGIN TRY
select ID from [Actor] where [ActorName]=@ActorName
if @@ROWCOUNT>0
begin
set @is_exist=1
end
else
begin
INSERT INTO [Actor] ([UsreID],[ActorName]) VALUES (@UsreID,@ActorName)
-----------recordset---------------
SELECT [ActorName],[ActorID] FROM [Actor] WHERE [UsreID]=@UsreID
end
END TRY
BEGIN CATCH
IF @@TRANCOUNT > 0
BEGIN
ROLLBACK TRANSACTION;
return -1
END
END CATCH;
IF @@TRANCOUNT > 0
BEGIN
COMMIT TRANSACTION;
if @is_exist=0
begin
return 1
end
else
begin
return -1
end
END
END
-
if @@ROWCOUNT>0
begin
set @is_exist=1
end
else
begin
INSERT INTO [Actor] ([UsreID],[ActorName]) VALUES (@UsreID,@ActorName)
-----------recordset---------------
SELECT [ActorName],[ActorID] FROM [Actor] WHERE [UsreID]=@UsreID
end晕这个判断的问题吧? 如果存在,则不会有任何结果集返回,只有当不存在的时候,才会插入并返回结果集
- 已标记为答案 sgzwiz2 2014年8月16日 9:58