DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: eyang11
今日帖子: 26
在线用户: 12
导航: 论坛 -> 数据库专区 斑竹:liumazi,waterstone  
作者:
男 zzcaism (LionKing) ★☆☆☆☆ -
普通会员
2004/5/2 10:02:41
标题:
如何调用sql server 中带参数的存储过程 浏览:2560
加入我的收藏
楼主: 我用dbexpress中的TSQLStoredProc,我在TSQLStoredProc中输入两个参数为
@EID,@RPrecent 
可是每次执行,都出现“list index out of bounds(0)”的错误,如果不带参数,则一切正常。
----------------------------------------------
-
作者:
男 zzcaism (LionKing) ★☆☆☆☆ -
普通会员
2004/5/6 9:42:52
1楼: 不会没有人会吧
----------------------------------------------
-
作者:
男 zzcaism (LionKing) ★☆☆☆☆ -
普通会员
2004/5/7 12:47:31
2楼: 有没有高手助我,五一发的贴子,五一过了,还是没人回
----------------------------------------------
-
作者:
男 sephil (NAILY Soft) ★☆☆☆☆ -
盒子中级会员
2004/5/7 13:10:45
3楼: http://bbs.2ccc.com/topic.asp?topicid=85888
----------------------------------------------
Copyright 2008 ? NAILY Soft

Click here to redirect to my home
Click here to redirect to my blog
作者:
男 zzcaism (LionKing) ★☆☆☆☆ -
普通会员
2004/5/7 18:01:04
4楼: 不行呀,您用的是TAdoStoreProc
可我用的是TSqlStoreProc,您的解答中:ADOStoredProc1.Parameters.AddParameter的意思及我的理解,我在TSqlStoreProc中,把代码修改成这样,可还是不行。

如下:
=======================

procedure TForm1.Button1Click(Sender: TObject);
var
  P1, P2: TParam;
begin
   with Datamodule2.SQLStoredProc1 do begin  
    StoredProcName := 'RaiseSalary';
    Params.Clear;
    P1 := TParam.Create(Params, ptInput);
    P2 := TParam.Create(Params, ptInput);
    p1.Value:='A00002';
    p2.Value:=2.2;
    try
      params.AddParam(p1);
      ExecProc;
    finally
      P1.Free;
      P2.Free;
    end;
  end;



一样的错误信息。
如果是手工在Object Inspector 中做参数,更是不可以。

----------------------------------------------
-
作者:
男 zzcaism (LionKing) ★☆☆☆☆ -
普通会员
2004/5/8 7:46:24
5楼: 高手在哪里呀
----------------------------------------------
-
作者:
男 masow (masow) ★☆☆☆☆ -
普通会员
2004/5/8 8:47:10
6楼: exec关键字好像可以,试试吧
----------------------------------------------
masow
作者:
男 lsh998 (lsh) ★☆☆☆☆ -
盒子活跃会员
2004/5/8 11:09:42
7楼: 我不知道用TSQLStoredProc
adostoredproc是这样的:

adostroedproc1.procedurename:='你存储过程名';
adostoredproc1.parameters.refresh;
adostoredproc1.parameters[1].value:=edit1.text;
adostoredproc1.parameters[2].value:=edit1.text;
adostoredproc1.prepare:=true;
adostoredproc1.xecpro;
end;


如果你的第二个参数是output参数的话
adostroedproc1.procedurename:='你存储过程名';
adostoredproc1.parameters.refresh;
adostoredproc1.parameters[1].value:=edit1.text;
adostoredproc1.parameters.direct:=pdoutput;
adostoredproc1.parameters[2].value:=' '
adostoredproc1.prepare:=true;
adostoredproc1.xecpro;
end;


----------------------------------------------
lsh
作者:
男 lsh998 (lsh) ★☆☆☆☆ -
盒子活跃会员
2004/5/8 11:20:17
8楼: 我写错了:
应该是;
adostroedproc1.procedurename:='你存储过程名';
adostoredproc1.parameters.refresh;
adostoredproc1.parameters[1].value:=edit1.text;
adostoredproc1.parameters[2].value:=edit2.text;
adostoredproc1.prepare:=true;
adostoredproc1.xecpro;
end;

----------------------------------------------
lsh
作者:
男 zzcaism (LionKing) ★☆☆☆☆ -
普通会员
2004/5/8 15:00:37
9楼: 我不能用dostoredproc,我想求教TSQLStoredProc的用法。
我用的数据库是sql server2000数据库,如果是用其它数据库,好像没有出现什么问题,只是用sql server2000的数据库,再使用TSqlStoreProc,一定用不了参数。
如果没有用参数,倒是没什么问题,很正常。
----------------------------------------------
-
作者:
男 zzcaism (LionKing) ★☆☆☆☆ -
普通会员
2004/5/8 22:34:39
10楼: 还有没有人能够再帮我看一下
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行593.75毫秒 RSS