您的位置:首页 > 编程语言 > Delphi

Delphi中如何调用存储过程?

2013-12-17 21:34 477 查看
估计有很多朋友用delphi写过与SQL Server 2000数据结合的一些MIS系统,对于大量的数据保存,及数据更新.常常考虑到用存储过程来实现...今天我写了一个简单的例子,希望能给一些朋友一点帮助....

1、当然,我们要在SQL SERVER 2000中建好我们的数据库及数据表。我这里用的数据库是reg_nis,其中我新建了一张表叫kevin(ID Int not null,test nvarchar(50),test2 nvarchar(50))其中有三个字段,ID是自动增长,增长率为1。

2、当然用到存储过程,必须先在SQL SERVER 2000中建好必要的存储过程。我建立了4个存储过程,功能分别是插入数据,修改数据,删除数据,查找数据。一般MIS系统中用到也就这些。(1)、插入数据存储过程:

CREATE PROCEDURE [InsertKevin]

(@test nvarchar(50),@test2 nvarchar(50)) AS

insert into kevin(test,test2)

values

(@test,@test2)

GO

(2)、修改数据存储过程:

CREATE PROCEDURE [UpdateKevin]

(@id int,@test nvarchar(50),@test2 nvarchar(50))

AS

update kevin set test=@test,test2=@test2 where [ID]=@id

GO

(3)删除数据存储过程:

CREATE PROCEDURE [DeleteKevin]

(@id int)

AS

delete from kevin where [ID]=@id

GO

(4)、查找数据存储过程

CREATE PROCEDURE [FindKevin]

(@id int)

AS

select * from kevin where [ID]=@id

GO

3、接下来,就在Delphi7中新建一个工程了。用一个ADOConnection1控件连接到数据库Reg_Nis。再放一个ADOStoredProc1控件,执行存储过程的。

我将ADOConnection1更名为ADOCnn,将ADOStoredProc1更名为ADOSP

主要代码:

procedure TmainForm.FormCreate(Sender: TObject);

begin

ADOSP.Connection:=ADOCnn;//将ADOSP连接到ADOCnn

end;

procedure TmainForm.WriteClick(Sender: TObject);

begin

//注意,调用存储过程时,要按参数出现的顺序.

//调用插入数据的存储过程

with adoSP do

begin

Close;

ProcedureName:='InsertKevin';

Parameters.Clear;

Parameters.CreateParameter('test',ftString,pdInput,50,'abc');

Parameters.CreateParameter('test2',ftString,pdInput,50,'fff');

ExecProc;

end;

//调用修改数据的存储过程

with adoSP do

begin

CLose;

ProcedureName:='UpdateKevin';

Parameters.Clear;

Parameters.CreateParameter('ID',ftInteger,pdInput,1,15);

Parameters.CreateParameter('test',ftString,pdInput,50,'eee');

Parameters.CreateParameter('test2',ftString,pdInput,50,'ddd');

ExecProc;

end;

//调用删除数据的存储过程

with adoSP do

begin

CLose;

ProcedureName:='DeleteKevin';

Parameters.Clear;

Parameters.CreateParameter('ID',ftInteger,pdInput,1,15);

ExecProc;

end;

//调用查找数据的存储过程

with adoSP do

begin

CLose;

ProcedureName:='FindKevin';

Parameters.Clear;

Parameters.CreateParameter('ID',ftInteger,pdInput,1,3);

// ExecProc;//在执行命令的存储过程中用ExecProc

Open; //在查询的存储过程时,用OPEN;也可用

end;

// edit1.Text :=adoSP.Parameters[0].Value;

end;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: