我的数据库连接用的是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啊,不需要注册的,偶工程要的急啊  拜托各位了。

解决方案 »

  1.   

    存储过程没有问题,存储过程的输入参数也没有问题,我贴出过程的接口
     /****************************************************************
        3、得到接收的数据(不是明细)
          函数名:getInceptData         
          参  数:strCheckDate          接收的日期(格式:YYYY-MM-DD)
                  strCheckState         接收数据状态(0、未接收;1、已经接收,2、所有;) 
                  csrCursor             返回数据游标
          返  回:返回数据游标
      ****************************************************************/
      
      procedure getInceptData(
        strCheckDate     in  varchar2,
        strCheckState    in  varchar2,
        csrCursor        out cursorCommon
      );
      

  2.   

    代码其他地方有列表的操作吗?
    ComboBox.Items
    Memo.Lines
    等等
      

  3.   

    没有,这个跟界面无关,也跟控件无关,用'dbexpora.dll'可以调用后台包过程或函数吗?