+ -
当前位置:首页 → 问答吧 → 关于调用查询的存储过程出现的问题 急~

关于调用查询的存储过程出现的问题 急~

时间:2011-12-20

来源:互联网

存储过程为:
use xuejiguanli
go
create proc xueji_selecteXueSheng
@XueHao varchar(20)
as
begin
select * from XueSheng where XueHao=@XueHao
end
delphi中的语句为
with sp_selectXueSheng do
begin
  Close;
  ProcedureName := 'xueji_selecteXueSheng';
  Parameters.Clear;
  Parameters.CreateParameter('XueHao',ftString,pdInput,20,Trim(edt_XueHao.Text));
  ExecProc;
end;
但是执行后,在DBGRID中没有变化

作者: HCDA_HCDP   发布时间: 2011-12-20

看你儲存過程是返回數據集的,所以不應該用執行,而是應該是:Open;
另外因為儲存過程都有一個缺省返回值的參數@Return_Value,這個是否要加你可試試。

作者: Oraclers   发布时间: 2011-12-20

with sp_selectXueSheng do
begin
  Close;
  SQL.Text:='xueji_selecteXueSheng '+Quotedstr(Trim(edt_XueHao.Text));
  Open;
end;

作者: kaikai_kk   发布时间: 2011-12-20

引用 1 楼 oraclers 的回复:
看你儲存過程是返回數據集的,所以不應該用執行,而是應該是:Open;
另外因為儲存過程都有一個缺省返回值的參數@Return_Value,這個是否要加你可試試。
能否有具体的代码

作者: HCDA_HCDP   发布时间: 2011-12-20

引用 2 楼 kaikai_kk 的回复:
with sp_selectXueSheng do
begin
Close;
SQL.Text:='xueji_selecteXueSheng '+Quotedstr(Trim(edt_XueHao.Text));
Open;
end;
抱错了~~我用的是存储过程的,用TADOSTOREDPROC

作者: HCDA_HCDP   发布时间: 2011-12-20

引用 3 楼 hcda_hcdp 的回复:
引用 1 楼 oraclers 的回复:
看你儲存過程是返回數據集的,所以不應該用執行,而是應該是:Open;
另外因為儲存過程都有一個缺省返回值的參數@Return_Value,這個是否要加你可試試。
能否有具体的代码

你直接在控件上選擇這個儲存過程名,然後點參數那個屬性,所有參數都已自動建立,運行時不要Clear,也不要再建立,直接給輸入參數賦值就可。

作者: Oraclers   发布时间: 2011-12-20

引用 4 楼 hcda_hcdp 的回复:
引用 2 楼 kaikai_kk 的回复:
with sp_selectXueSheng do
begin
Close;
SQL.Text:='xueji_selecteXueSheng '+Quotedstr(Trim(edt_XueHao.Text));
Open;
end;
抱错了~~我用的是存储过程的,用TADOSTOREDPROC


转一下弯撒,,,存储过程是返回数据集的,直接用查询,换ADOQuqey

作者: kaikai_kk   发布时间: 2011-12-20