PDA

View Full Version : سوال: برگرداندن مقدار sp در vb



مرتضی حمزه ئی
یک شنبه 10 خرداد 1388, 11:36 صبح
باسلام خدمت اساتید محترم
من یک sp دارم که یکی از پارامترهاش از نوع output است وپس از چتدتا insert,select یک مقداری رامیخوام برگردونم توی vb استفاده کنم ولی عجیبه که وقتی insert ها را comment میکنم جواب واسه من برمیگردونه ولی اگر insert باشه میگه مقدار پارامتر خروجی رانمیشناسه sp من بصورت زیر است ومشکلی نداره
میخوام ببینم Insert با output چرا سازگارنیست وچکارکنم جواب بده با تشکر از شما دوستان
CREATE PROCEDURE Insert_marahel
@MarahelSerial int ,
@MarahelDesc nvarchar(50) ,
@MarahelDescNew nvarchar(50) ,
@Conserial int ,
@MarSefDateErs char(10) ,
@MarSefOlaviat tinyint ,
@MarSefArzesh tinyint ,
@DownOrderKol char(15) ,
@MarSefDateNiaz char(10) ,
@GroupCode int ,
@MarParvandeh char(20) ,
@year1 char(4) ,
@SerialMap2 nvarchar(50) output
as
declare @SerialMap as int
declare @SerialMap1 as int
declare @SerialMap3 as int
set @SerialMap2 = ''
set @SerialMap3= (select count(*) from TblMarahelSefaresh where DownOrderKol <> @DownOrderKol and MarParvandeh=@MarParvandeh)
if @SerialMap3<> 0
begin
set @SerialMap2 = 'شماره پرونده تکراری است'
select @SerialMap2 as aa return
end
else
begin
BEGIN TRANSACTION
set @serialMap=(Select count(*) from TblMarahelSefaresh where ltrim(rtrim(DownOrderKol))=ltrim(rtrim(@DownOrderK ol)))
set @serialMap1= (Select IsNull(Max(SerialMapsystem),0)+1 from TblSerialMap where GroupCode=@GroupCode and Year1=@year1)
if @serialMap=0 insert into TblSerialMap values (@DownOrderKol,@Year1,@GroupCode,@serialMap1)
Insert into TblMarahelSefaresh values (@MarahelSerial,@MarahelDesc,@MarahelDescNew,@Cons erial,@MarSefDateErs,@MarSefOlaviat,@MarSefArzesh, @DownOrderKol,@MarSefDateNiaz,@GroupCode,@MarParva ndeh,'13__/__/__')
IF @@ERROR<>0 ROLLBACK TRANSACTION
set @SerialMap2= 'ذخیره اطلاعات با موفقیت انجام شد'
select @SerialMap2 as aa
COMMIT TRANSACTION


end
GO

وفراخوانی آن توی vb هم بصورت زیراست
rs1.Open "declare @hh nvarchar(30) execute Insert_marahel " & Val(TxtSerFaaliat.Text) & ",'" & Trim(TxtFaaliat.Text) & "','" & Trim(TxtFaaliatNew.Text) & "'," & Val(TxtSerVahed.Text) & ",'" & Trim(MskDateErs.Text) & "'," & Val(TxtOlaviat.Text) & "," & Val(TxtFaaliatDarsad.Text) & ",'" & Trim(MskGrohSefaresh.Text) & "','" & Trim(MskDateNiaz.Text) & "'," & SystemCode & ",'" & Trim(TxtParvandeh.Text) & "','" & Mid(MskDateErs.Text, 1, 4) & "', @hh output", clsDb.ConnectionStr
میخوام ببینم Insert با output چرا سازگارنیست