Delphi中如何呼叫儲存過程

2021-06-19 18:21:14 字數 2616 閱讀 6140

估計有很多朋友用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))

asupdate kevin set test=@test,test2=@test2 where [id]=@id

go(3)刪除資料儲存過程:

create procedure [deletekevin]

(@id int)

asdelete from kevin where [id]=@idgo

(4)、查詢資料儲存過程

create procedure [findkevin] 

(@id int)

asselect * from  kevin  where [id]=@id

go3、接下來,就在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;

DELPHI如何呼叫儲存過程

第一步建立儲存過程 create proc myabc a int b int,c int output asset c a b 在sql中使用查詢分析器執行 declare a int,b int,c int set a 250 set b 40 exec myabc a,b,c output 注...

DELPHI如何呼叫儲存過程

第一步建立儲存過程 create proc myabc a int b int,c int output asset c a b 在sql中使用查詢分析器執行 declare a int,b int,c int set a 250 set b 40 exec myabc a,b,c output 注...

DELPHI儲存過程呼叫

網上對該問題的帖子很多,但是經常不是很全面,筆者在使用時也遇到了很多實際問題,比如引數不存在啊 型別沒有引用啊等等。下面我盡量細緻地來通過例子實現一下,如果還有不正確的地方,希望得到高手指點,有興趣的可以和我一同 zyf0808 yeah.net 首先,我們使用一種簡單的方式,即通過控制項的方式來定...