• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Delphi 调用SQL Server 2008存储过程

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

1.表结构如下(预算数据明细表):

CREATE TABLE [dbo].[BA_FeeDetail](
	[ID] [int] IDENTITY(1,1) NOT NULL,
	[FeeDeptID] [nvarchar](4) NULL,
	[FeeDate] [int] NULL,
	[FeeCode] [nvarchar](10) NULL,
	[FeeType] [nvarchar](1) NULL,
	[BAType] [nvarchar](1) NULL,
	[FeeAmt] [float] NULL
) ON [PRIMARY]


2.创建存储过程(用于取得某部门某次预算的某月某费目的预算额)

CREATE PROCEDURE [dbo].[GetBudgetAmt] 
	-- Add the parameters for the stored procedure here
	@DeptID nvarchar(4) = '7120',
	@FeeDate int = 201301,
	@FeeCode nvarchar(8) ='31301' ,
	@FeeType nvarchar(1) = '2',
	@BAType nvarchar(1)='1',
	@FeeAmt float output 
	AS
BEGIN
	-- SET NOCOUNT ON added to prevent extra result sets from
	-- interfering with SELECT statements.
	SET NOCOUNT ON;

    -- Insert statements for procedure here
	SELECT @FeeAmt = FeeAmt from BA_FeeDetail where (
						FeeCode = @FeeCode and   
				 		FeeType = @FeeType and  
						FeeDate = @FeeDate and
						FeeDeptID = @DeptID and  
						BAType = @BAType
					 )
						
	Return @FeeAmt
END


3.delphi 程序中调用(使用ADOConnect 和 ADOStoreProc )

procedure TForm1.btn1Click(Sender: TObject);
Var
	BudgetAmt:Single;
begin
	with ADOSP1 do
	begin
		ProcedureName :='GetBudgetAmt';
		Parameters.Refresh;				//必须有本语句,刷新参数
		Parameters.ParamByName('@DeptID').Value:=EdtDept.Text;
		Parameters.ParamByName('@FeeDate').Value:=EdtFeeDate.Text;
		Parameters.ParamByName('@FeeCode').Value:=EdtFeeCode.Text;
		Parameters.ParamByName('@FeeType').Value:=EdtFeeType.Text;
		Parameters.ParamByName('@BAType').Value:=EdtBAType.Text;
		Parameters.ParamByName('@FeeAmt').Value:=0.00;
		ExecProc;
		BudgetAmt:=Parameters.ParamByName('@FeeAmt').Value;
		edtFeeAmt.Text:=Format('%.2f',[BudgetAmt]);
	end;
end;


测试通过(测试环境 Win7 + SQL Server 2008 + Delphi XE,时间 2013/07/14 7:00AM) 

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
转:Delphi的类与继承(VB与delphi比较)发布时间:2022-07-18
下一篇:
Delphi中使用DirectX截屏函数发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap