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;

 
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值