搜档网
当前位置:搜档网 › Delphi中如何调用存储过程

Delphi中如何调用存储过程

估计有很多朋友用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;

相关主题