with DM.OraStoredProc1 do
                begin
                        parameters.ParamByName('IN_REC_ID').Value:=DM.OraQuery1.FieldByName('lsh').AsVariant;
                        parameters.ParamByName('IN_XMH').Value:=null;
                        parameters.ParamByName('IN_NBSBH').Value:=null;
                        parameters.ParamByName('IN_WH').Value:=UPPERCASE(Trim(Edit4.Text));
                        parameters.ParamByName('IN_MHCX').Value:='N';
                end;
                DM.OraStoredProc1.ExecProc;
为什么我这样调用ORACLE的PROCEDURE的时候总是报错啊?OraStoredProc1 为TADOStoredProc控件,好像说我PARAMETERS属性有问题,但是我的PARAMETERS是连接到数据库之后自动获得的。
另外,DataModule2.OraSession1.ConnectionString:='Provider=OraOLEDB.Oracle.1;Password=ssagt_dzsw;Persist Security Info=True;User ID=ssagt;Data Source=navecodb ';我在ONCREATE事件里面写了这样的一个连接字符串,结果程序每次到这个地方就出现异常,说访问内存某个地址出错,请大家告诉我如何处理,谢谢,很急,明天就要交程序。谢谢大家

解决方案 »

  1.   

    其中DataModule2.OraSession1也是TADOCONNECTION控件。
      

  2.   

    parameters.ParamByName( 'IN_XMH ').Value:=null; 
    parameters.ParamByName( 'IN_NBSBH ').Value:=null; 
    这两句别写,因为写的话默认就是null
      

  3.   

    with ADOStoredProc do 
    begin
      ProcedureName:='proc';     
      Parameters.Clear;   
      Parameters.CreateParameter('col1',ftInteger,pdInput,4,0);   
      Parameters.CreateParameter('col2',ftInteger,pdInput,4,0);       
      Prepared:=true;       
      ExecProc; 
    end;