二层中,可以使用ADOSTOREDPROC调用存储过程.但是三层,特别是没有ADOCONNECTION的情况下,没有链接,又如何使用ADOSTOREDPROC??
或者在这种情况下有其它方法可代替?

解决方案 »

  1.   

    你可以在query控件中执行 call 过程名(参数)
      

  2.   

    with adqquery do begin
      sql.clear;
      sql.add('exec proname :a,:b,:c output');
      parameters.parambyname('a').value := stra;
      ..
      EXECUSQL
      RESVAL := parameters.parambyname('c').value;
    end;
    这样就可以实现了
      

  3.   

    没有CONNECTION 可用呀.怎办??
      

  4.   

    //调用存储过程
      dmThreeMD.CX1.Close;
      dmThreeMD.CX1.CommandText := 'call UPDATE_I009('''+ temJH +''''
                       + ' ,'''+ FormatDateTime('YYYYMM',temRQ) +''')';
      dmThreeMD.CX1.Execute;正在使用中,应该可以调用
      

  5.   

    oracle + clientdataset 的cds_exc.close;
    cds_esc.CommandText := 'begin'+ 
                           '  ProcedureName( 参数 );'+
                           'end;';
    try
       CDS_exc.Execute;
    except
       ///
    end;