lists out of bound (0)........

foxmen 2006-08-09 09:16:09
我的数据库连接用的是dp7自带的dbexpress驱动,数据库连接没问题,可是但代码调用后台的包过程的时候,报错误,错误原因是:lists out of bound (0) 。。。

以下是我的代码,很精简的。拜托各位大虾看看!

//数据库连接
function TDBManager.setDataOneConnect(strServer,strUser,strPassword:string):boolean;
begin
try
with sqlconnCommon do
begin
LoginPrompt:=False;
ConnectionName:='hnfs';
LibraryName := 'dbexpora.dll';
GetDriverFunc := 'getSQLDriverORACLE';
DriverName:='Oracle';
VendorLib:='oci.dll';
Params.Clear;
Params.add('Multiple Transaction=true');
Params.Add('User_Name='+strUser);
Params.Add('Password='+strPassword);
Params.Add('Database='+strServer);
Open;
end;
result:=true;
except
result:=false;
end;
end;

//得到接收数据游标
function TDBManager.getInceptDataSet(strDate,strState:string):TSimpleDataSet;
var
sspData:TSQLStoredProc;
begin
try
sspData:=TSQLStoredProc.Create(nil);
sspData.SQLConnection:=sqlconnCommon;
sspData.Close;
sspData.Params.Clear ;
sspData.PackageName:='IncomeManger';
sspData.StoredProcName:='getInceptData';
sspData.Params.CreateParam(ftString,'strCheckDate',ptInput);
sspData.Params.CreateParam(ftString,'strCheckState',ptInput);
sspData.Params.CreateParam(ftCursor,'csrCursor',ptOutput);
sspData.Params.ParamByName('strCheckDate').Value:=strDate;
sspData.Params.ParamByName('strCheckState').Value:=strState;
sspData.ParamCheck:=true;
sspData.Open;
result:=TSimpleDataSet(sspData);
except
result:=nil;
end;
end;

报错误的位置在“sspData.Open;”,我想不通啊,代码没错误啊。。。

还有,各位大虾有没有高版本的dbexpoda.dll啊,不需要注册的,偶工程要的急啊。。。 拜托各位了。

...全文
171 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
foxmen 2006-09-30
  • 打赏
  • 举报
回复
各位大哥,不好意思,小弟最近比较忙,没有及时揭贴,抱歉!
foxmen 2006-08-09
  • 打赏
  • 举报
回复
没有,这个跟界面无关,也跟控件无关,用'dbexpora.dll'可以调用后台包过程或函数吗?
zswangII 2006-08-09
  • 打赏
  • 举报
回复
代码其他地方有列表的操作吗?
ComboBox.Items
Memo.Lines
等等
foxmen 2006-08-09
  • 打赏
  • 举报
回复
数据游标没问题啊,我都在后台测试通过了!
DoerSoft 2006-08-09
  • 打赏
  • 举报
回复
数据游标?
foxmen 2006-08-09
  • 打赏
  • 举报
回复
存储过程没有问题,存储过程的输入参数也没有问题,我贴出过程的接口
/****************************************************************
3、得到接收的数据(不是明细)
函数名:getInceptData
参 数:strCheckDate 接收的日期(格式:YYYY-MM-DD)
strCheckState 接收数据状态(0、未接收;1、已经接收,2、所有;)
csrCursor 返回数据游标
返 回:返回数据游标
****************************************************************/

procedure getInceptData(
strCheckDate in varchar2,
strCheckState in varchar2,
csrCursor out cursorCommon
);
zhangxuyu1118 2006-08-09
  • 打赏
  • 举报
回复
检查存储过程的输入参数
dabaicai 2006-08-09
  • 打赏
  • 举报
回复
确定存储过程没问题?
foxmen 2006-08-09
  • 打赏
  • 举报
回复
兄弟,我传入的值的有什么问题啊,我没看出来啊!
Rubi 2006-08-09
  • 打赏
  • 举报
回复
你传入的值的问题
foxmen 2006-08-09
  • 打赏
  • 举报
回复
为什么啊,为什么没有人来啊,来人啊,分不够,我再开一个啊!
wudi_1982 2006-08-09
  • 打赏
  • 举报
回复
这种问题,只能自己慢慢调试。如果确定没有对列表的操作,把你调用存储过程的那段,单独用个程序,放个控件上(先不用动态生成的),试试看看。

2,496

社区成员

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

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