请问一个DBEXPRESS的存储过程的问题.

jjaacc 2003-05-26 03:59:44
我用SQLSTOREDPROC,PARAMS设了两个,都是输入的.但是为什么我在运行时出现了"list index out of bounds (0)"这样的错误呢?谢谢!
...全文
19 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2003-05-31
  • 打赏
  • 举报
回复
另外你可以看看Params的属性中的参数顺序,确认是否参数正确,第一个参数为
SQLStoredProc1.Params[0].Value
注意严格按照顺序,不过你可以调整顺序
「已注销」 2003-05-31
  • 打赏
  • 举报
回复
如果用SqlServer默认的第一个参数为@RETURN_VALUE,所以最好采用名字的方式
SQLStoredProc1.ParamByName('@parmname1').AsString :='XXXX';
SQLStoredProc1.ParamByName('@parmname2').AsString :='XXXX';
SQLStoredProc1.ParamByName('@parmname3').AsString :='XXXX';
jjaacc 2003-05-31
  • 打赏
  • 举报
回复
paramcheck是为TRUE,还是出现上面的错误.
jjaacc 2003-05-31
  • 打赏
  • 举报
回复
我的代码如下:

sqlstoredproc2.storedprocname:='cr';
sqlstoredproc2.execproc;
label1.caption:=inttostr(sqlstoredproc2.params.paramvalues['recordcounts']);
//我是用存储过程统计表中的记录,可是不行啊.
我在SQLSTOREDPROC2中新建一个PARAM,

DATATYPE设为"ftinteger',
name为recordcounts,
paramtype为ptOutput
「已注销」 2003-05-31
  • 打赏
  • 举报
回复
另外还有个问题,如果你不是用的SQLServer,可能你选择了存储过程后,系统并没有自动的给你生成参数表,也就是Param属性中没有值,那你就需要手工添加参数,特别要注意的是参数的类型paramtype,和数据类型datatype.
现在想可能问题就在这里.我一直在线,由问题给我发消息。
「已注销」 2003-05-31
  • 打赏
  • 举报
回复
应该不会呀,我刚才又试了以下,应该没有问题呀。是不是你
@PARMNAME1 :是指你的参数的名字,我只是举个例子,你可以从param属性中拷贝出参数的名字,不过在名字前要有@。再试试。
jjaacc 2003-05-31
  • 打赏
  • 举报
回复
谢谢 ...

hhytsoft(雨中独行) :
1.我用SQLStoredProc1.ParamByName('@parmname1').AsString :='XXXX';方式写,提示"SQLSTOREPROC1:PARAMETER '@PARMNAME1' NOT FOUND'

2.按你下面所说的用PARAMS[0].VALUE也还是出现上面的错误.
wtj1978 2003-05-30
  • 打赏
  • 举报
回复
老兄:
这样写
Sp.ParamCheck:=true;
SP.StoredProcName:=ProName;
可行的

2,498

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧