存储过程 调用问题

xuminghua 2005-10-13 04:35:42
存储过程:
CREATE PROCEDURE LIST(@TableName VARCHAR(100))
AS
BEGIN
DECLARE @DD AS VARCHAR(100)
SET @DD = 'SELECT * FROM ' + @TableName
EXEC (@DD)
END
GO
程序调用:
SQLConnection1.Connected :=True;
SQLStoredProc1.SQLConnection :=SQLConnection1;
SQLStoredProc1.Params.Clear ;
SQLStoredProc1.StoredProcName :='List';
SQLStoredProc1.Params.CreateParam(ftString ,'A',ptInput );
SQLStoredProc1.Params.ParamByName('A').Value:='PSYS_Function';
SQLStoredProc1.Open


提示错误
list index out of bounds(0);
...全文
147 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
mfwzhou 2005-10-18
  • 打赏
  • 举报
回复
SQLConnection1.Connected :=True;
SQLStoredProc1.SQLConnection :=SQLConnection1;
SQLStoredProc1.StoredProcName :='List';
SQLStoredProc1.Params.Clear ;
SQLStoredProc1.Params.CreateParam(ftString ,'A',ptInput );
SQLStoredProc1.Params.ParamByName('A').Value:='PSYS_Function';
SQLStoredProc1.Execpro
wdswcy 2005-10-16
  • 打赏
  • 举报
回复
//如果上面的方法还不行,请在调用存储过程的语句中加上SQLStoredProc1.Parameters.Refresh;
//如下:

SQLConnection1.Connected :=True;
SQLStoredProc1.SQLConnection :=SQLConnection1;
SQLStoredProc1.Params.Clear ;
SQLStoredProc1.Parameters.Refresh;
SQLStoredProc1.StoredProcName :='List';
SQLStoredProc1.Params.CreateParam(ftString ,'A',ptInput );
SQLStoredProc1.Params.ParamByName('A').Value:='PSYS_Function';
SQLStoredProc1.Open

wdswcy 2005-10-16
  • 打赏
  • 举报
回复
---估计是你存恢过程有问题,请改用下面的方法试试

CREATE PROCEDURE LIST(@TableName VARCHAR(100))
AS
BEGIN
DECLARE @DD AS VARCHAR(100)
---将下面这句改改,去了右过的空格
---SET @DD = 'SELECT * FROM ' + @TableName
SET @DD = 'SELECT * FROM ' + rtrim(@TableName)
EXEC (@DD)
END
GO
xuminghua 2005-10-16
  • 打赏
  • 举报
回复
一样不行
cjianwen 2005-10-13
  • 打赏
  • 举报
回复
把open改成 execpro试试~~

可能我写错了~~

2,497

社区成员

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

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