delphi调用包含日期参数的存储过程代码需怎样写,(50分)

  • 主题发起人 主题发起人 itassist06
  • 开始时间 开始时间
I

itassist06

Unregistered / Unconfirmed
GUEST, unregistred user!
Create Procedure CalQcPassNum1 @PartFM varchar(18),@PartTO varchar(18)
AS
Declare @PurBBID varchar(50)
Declare @QcPassNum numeric(11,2)
Declare @SpareNum numeric(11,2)
begin tran

Update PurB Set PurB.QcPassNum_=0 from PurB B inner join PurH H on B.PID_=H.ID_ Where B.PartCode_ between @PartFM and @PartTO and H.Final_=1 and B.Finish_=0

Declare QcCursor cursor for Select PurBBID_,QCPassNum_,SpareNum_ from Receive Where PartCode_ between @PartFM and @PartTO and AFinal_=1
open QcCursor
fetch next from QcCursor into @PurBBID,@QcPassNum,@SpareNum
while @@fetch_status=0
begin
Update PurB Set PurB.QcPassNum_=PurB.QcPassNum_+ @QcPassNum+Case When PurB.SpareNum_- @SpareNum <0 then @SpareNum else PurB.SpareNum_ end Where ID_=@PurBBID
fetch next from QcCursor into @PurBBID,@QcPassNum,@SpareNum
end
Close QcCursor
deallocate QcCursor
commit tran


GO


假如我现在要用delphi调用上面这个存储过程代码需怎样写,
我是初学者,请高手们写的详细一些,最好有说明.
 
搂住 尽量想办法避免用游标吧 太占内存 影响性能
 
不用游标怎样写呢,我存储也不怎么会写
 
怎么沒人來幫我
 
在界面上放一控件ADOStoredProc1,
設定好其CONNECTION
並設定其PROCEDURENAME為 CalQcPassNum1;1
設定PARAMETERS在其中加入@PartFM 與@PartTO
在按鈕執行事件中
ADOStoredProc1.Parameters.ParamByName('@PartFM ').Value:=FormatDateTime('yyyy-MM-dd',..);
ADOStoredProc1.Parameters.ParamByName('@PartTo ').Value:=FormatDateTime('yyyy-MM-dd',..);
ADOstoredProc1.ExecProc;
 
PARAMETERS在其中自動加入了@PartFM 與@PartTO
還是不行
 
考虑到你的存储过程的写法,建议参数使用日期型:
Create Procedure CalQcPassNum1 @PartFM datetime,@PartTO datetime
...
然后:
ADOStoredProc1.Parameters.ParamByName('@PartFM ').Value:=日期一;
ADOStoredProc1.Parameters.ParamByName('@PartTo ').Value:=日期二;
ADOstoredProc1.ExecProc;
 
ADOStoredProc1.Parameters.ParamByName('@PartFM ').Value:=DateTimePicker1.DATE;
ADOStoredProc1.Parameters.ParamByName('@PartTo ').Value:=DateTimePicker2.DATE;
ADOstoredProc1.ExecProc;
 
接受答案了.
 
后退
顶部