首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

Delphi中怎么调用SQL数据库的存储过程

2012-02-19 
Delphi中如何调用SQL数据库的存储过程我的存储过程:ALTER PROCEDURE [dbo].[mathin]@FuntionIDINT 0, --1

Delphi中如何调用SQL数据库的存储过程
我的存储过程:ALTER PROCEDURE [dbo].[mathin]
@FuntionIDINT= 0, --100 新增, 200 修改, 300 删除 , 400 查询
如何用ADOQurery控件调用
qry1.Close ;
qry1.SQL.Clear ;
qry1.SQL.Add({exec mathin @Funtion=100,@货号=6,@条码=3432,@拼音编码=dsgg,@品名=梨子,@规格=8796,@单位=斤,@产地=江苏苏州,@类别=sdgh,@进货价=2,@销售价1=3,@销售价2=4,@最低售价=3});
qry1.Open ;
这是我自己瞎写的,不会啊,请高手们多多指教

[解决办法]
用ADOStoredProc执行存储过程
[解决办法]
ADOStoredProc可以,adoquery也可以,写sql exec ...
[解决办法]
把最后一行的 OPEN
改成 ExecSQL

[解决办法]
示例:

Delphi(Pascal) code
var  qt_:Tadoquery;  counts_:Integer;    qt_:=TADOQuery.Create(nil);  try    with qt_ do    begin      try        Connection:=DM.ADODB;        sql.Text:='exec proc_3_isTab_yhfw_SIDNo :yhfw_sidno_,:tb_,:counts_ out'; //执行存储过程proc_3_isTab_yhfw_SIDNo,共有三个参数,其中yhfw_sidno_、tb_传入存储过程,counts_为存储过程返回        Parameters.ParamByName('yhfw_sidno_').Value:=yhfw_SIDNo; //传值给存储过程参数        Parameters.ParamByName('tb_').Value:=Trim(tb_); //传值给存储过程参数        ExecSQL;        counts_:=Parameters.ParamByName('counts_').Value; //取存储过程返回值        if counts_>0 then Result:='True' else Result:='False';      except        on E:exception do        begin          ShowMessage('执行失败');          Result:='Error';        end;      end;    end;  finally    qt_.Free;  end;
[解决办法]
关注。
[解决办法]
1.将open修改为ExecSQL
2.语句用''包括在内
[解决办法]
Delphi(Pascal) code
          qry_tep_go.Close;          qry_tep_go.SQL.Clear;          qry_tep_go.SQL.Add( ' exec SP_HR_QXY_RATE @Years= '+ QuotedStr(Trim(cxComboBox5.Text))+' ' );          qry_tep_go.ExecSQL;
[解决办法]
存储过程啊。正在学
[解决办法]
3楼正解,用ExecSQL,不能用Open。

当ADOQuery中是 Insert、Update、Delete 等那么不返回结果集(数据记录)的SQL命令时, 必须用ExecSQL 。
[解决办法]
探讨

示例:
Delphi(Pascal) code

var
qt_:Tadoquery;
counts_:Integer;


qt_:=TADOQuery.Create(nil);
try
with qt_ do
begin
try
Connection:=DM.ADODB;
sql.Text:='exec pr……

热点排行