Vb6 調(diào)用Mysql存儲過程 sqlstr = "call Stor_InOutMat(" & selck & "," & Val(Label20.Caption) & "," & Val(Text10) & "," & czymc & "," & Trim(Text11) & "," & czyid & ")" cn.Execute sqlstr 帶參數(shù)的Mysql存儲過程 CREATE DEFINER=`root`@`localhost` PROCEDURE `Stor_InOutMat`(IN indeportCode varchar(30), IN inmateId int,IN Num int,IN InName varchar(20) charset utf8,IN InRemark varchar(50) charset utf8,IN InUseId int) BEGIN set @ServerDT=sysdate(); select count(mateid) into @aa from materialios where trim(Depotcode)=trim(indeportCode) and mateid=inmateId; if @aa=0 then /* 無庫存記錄,直接加一條入倉或出倉記錄 */ begin if num>0 then insert into materialios(mateid,depotcode,IOSDateTime,AddNum,SubNum,OverNum,UserName,Remark,UserId) values(inmateId,indeportCode,@ServerDT,Num,0,Num,InName,InRemark,InUseId); /* 入倉 */ else insert into materialios(mateid,depotcode,IOSDateTime,AddNum,SubNum,OverNum,UserName,Remark,UserId) values(inmateId,indeportCode,@ServerDT,0,0-Num,Num,InName,InRemark,InUseId); -- 出倉-- end if; end; else /* 以前有庫存記錄,查詢庫存量后再出入倉及更改庫存量 */ begin select max(ID) into @lasttime from materialios where trim(Depotcode)=trim(indeportCode) and mateid=inmateId; select OverNum into @OverNum from materialios where ID=@lasttime; /*select max(IOSDateTime) into @lasttime from materialios where trim(Depotcode)=trim(indeportCode) and mateid=inmateId; /* 最后的出入倉時間*/ /*select OverNum into @OverNum from materialios where Depotcode=indeportCode and mateid=inmateId and IOSDateTime=@lasttime; /* 現(xiàn)有庫存量*/ if num>0 then insert into materialios(mateid,depotcode,IOSDateTime,AddNum,SubNum,OverNum,UserName,Remark,UserId) values(inmateId,indeportCode,@ServerDT,Num,0,@OverNum+Num,InName,InRemark,InUseId); /* 入倉 */ else insert into materialios(mateid,depotcode,IOSDateTime,AddNum,SubNum,OverNum,UserName,Remark,UserId) values(inmateId,indeportCode,@ServerDT,0,0-Num,@OverNum+Num,InName,InRemark,InUseId); -- 出倉-- end if; end; end if; DROP TEMPORARY TABLE IF EXISTS lstjb; CREATE TEMPORARY TABLE lstjb SELECT mateid,depotcode,max(iosdatetime) as maxti from materialios group by mateid,depotcode; select sum(overnum) into @LastNum from lstjb,materialios where materialios.mateid=lstjb.mateid and materialios.depotcode=lstjb.depotcode and materialios.iosdatetime=lstjb.maxti and materialios.mateid=inmateId; update mate_inf set numbers=@LastNum where Id= inmateId; END;