DELPHI中调用带有日期型参数的存储过程
CREATE PROCEDURE 合计@date1 datetime,@date2 datetimeAS select top 20 a.物料代码,sum(a.总数量)as 数量合计,sum(a.总金额)as 金额合计,a.物料名称,a.型号 from(SELECT dbo.sbilldet.itemno AS 物料代码, SUM(dbo.sbilldet.qty) AS 总数量 , SUM(dbo.sbilldet.sellsum) AS 总金额, dbo.itemdata.itemname AS 物料名称, dbo.itemdata.descript AS 型号,dbo.sbillmst.carddt as 日期FROM dbo.sbilldet INNER JOIN dbo.sbillmst ON dbo.sbilldet.sysno = dbo.sbillmst.sysno INNER JOIN dbo.enterprise ON dbo.sbillmst.compno = dbo.enterprise.compno INNER JOIN dbo.itemdata ON dbo.sbilldet.itemno = dbo.itemdata.itemnoGROUP BY dbo.sbilldet.itemno, dbo.itemdata.itemname, dbo.itemdata.descript, dbo.sbillmst.carddt, dbo.sbillmst.ischeckHAVING (SUM(dbo.sbilldet.qty) >= 0) AND (dbo.sbillmst.ischeck = 1) AND (dbo.sbillmst.carddt >=@date1 AND dbo.sbillmst.carddt <= @date2)) agroup by a.物料代码,a.物料名称,a.型号order by 数量合计 descGO
procedure TForm1.Button1Click(Sender: TObject);begin if datetimepicker1.Date >datetimepicker2.Date then begin showmessage('开始日期大于终止日期'); datetimepicker1.SetFocus ; exit; end; adoquery1.Close; adoquery1.sql.Clear; adoquery1.SQL.text:='execute 合计 (:date1,:date2)'; adoquery1.Parameters.ParamByName('@date1').value:=DateTimePicker1.DateTime; adoquery1.Parameters.ParamByName('@Date2').Value:=DateTimePicker2.DateTime; adoquery1.ExecSQL; adoquery1.refresh;end;