怎么有才能在delphi里调用SQL里做好的存储过程?????(100分)

  • 主题发起人 主题发起人 R9
  • 开始时间 开始时间
R

R9

Unregistered / Unconfirmed
GUEST, unregistred user!
CREATE PROCEDURE biao_gl @name char(10), @sex char(10), @age char(10), @addr char(10), @number char(10), @room char(10), @money char(10),@op char(1),@id char (10)
AS
begin
if @op='a'
begin
insert into biao (name,sex,age,addr,number,room,money)values(@name,@sex,@age,@addr,@number,@room,@money)
end
else if @op='d'
begin
delete from biao where id=@id
end
else if @op='u'
begin
update biao set name=@name,sex=@sex,age=@age,addr=@addr,number=@number,room=@room,money=@money where id=@id
end
end
GO

这是我在sql里写的存储过程,请问,我在delphi里怎么调用它?

比如我要调用 ADD DELERT 等语句怎么用?

谢谢~
 
直接用 TStoredProc 控件就行了
 
控件我知道啊,但我不会在DELPHI里写语句啊,

比如,我现在用edit1控件做个添加,应该在delphi里怎么写语句,来调用这个TSTOREDPROC?
 
storedproc1.active:=false;
storedproc1.PROCEDUREname:='biao_gl;1';
storedproc1.active:=true;
 
用storedproc控件就行了,也可用query
 
调用存储过程我常用TQUERY的,觉得写法更简单,构造QUERY语句就行了。
temp:='execute 存储过程名 "'+参数1+'","'+参数2+'"';//假设参数是字符型
query1.close;
query1.sql.text:=temp;
query1.execsql;(如果存储过程里,最后是select返回结果集,这里用query1.open)
 
storedproc1.parambyname('@name').asstring:='dsgsdgsd';
storedproc1.parambyname('@sex').asstring:='dsgsdgsd';

storedproc1.execsql;
 
with storedproc1 do
begin
parambyname('@name').asstring:='gg';
parambyname('@sex').asstring:='male';
parambyname('@age').asstring:=20;
...
execsql;
end;

如果有返回结果集,用open 代替execsql。
 
写错一处:
parambyname('@age').asstring:=20 应该为 parambyname('@age').value:=20

其实都用.value就可以了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
1K
DelphiTeacher的专栏
D
I
回复
0
查看
709
import
I
I
回复
0
查看
733
import
I
后退
顶部