我用DELPHI 开发ORACLE 数据库
  statquery.close;
  statquery.sql.clear;  
  statquery.SQL.add(' EXEC DT_UCXALL_USER_NH(:bmid,:czyid,:s,:e) ');
  statquery.Params[0].AsInteger :=StrToInt(DepartmentNo);
  statquery.Params[1].AsInteger := StrToInt(UserID);
  statquery.Params[2].AsDateTime := stime;
  statquery.Params[3].AsDateTime := etime;
  statquery.ExecSQL;
   执行该代码提示“general sql error”
   帮忙看一下毛病出在什么地方,急用,在线等,谢谢了;
  注:
 ’ EXEC DT_UCXALL_USER_NH(82,8,TO_DATE('2002-01-01','YYYY-MM-DD'),TO_DATE('2003-03-03','YYYY-MM-DD'))   ‘该段代码我在SQL PLUS 下执行通过

解决方案 »

  1.   

    statquery.SQL.add('EXEC DT_UCXALL_USER_NH('+DepartmentNo+','+UserID+','+DATETIMETOSTR(stime)+','+DATETIMETOSTR(etime)');
        statquery.ExecSQL;
      

  2.   

    TDATASOURCE 具体有什么用?
      

  3.   

    oracel 的存储过程调用用下面的试验一下:
    statquery.SQL.add(' EXEC DT_UCXALL_USER_NH(:bmid,:czyid,:s,:e) ');
    改成
    statquery.SQL.add('{call  用户名.DT_UCXALL_USER_NH(:bmid,:czyid,:s,:e) }');
    我一直这样用
      

  4.   

    跟踪进去看看,执行的时候传递的SQL语句到底怎样?
    我记得以前Oracle的Data数据要这样写'#YYYY/MM/DD#',
    或者用TO_DATE函数。
      

  5.   

    楼上说的对
    我想问一下 EXEC PROCEDURE 是不是SQL 语句
      

  6.   

    EXEC是很多DBMS支持的SQL语句,它用来执行存储过程。
      

  7.   

    我在TQUERY里执行存储过程,总是提示我‘general sql error’
    在SQL SERVER数据库是正确的,用ORACLE就不正确,为什么?
      

  8.   

    我用TSTOREPROC 执行存储过程就可以,着是为什么?
      

  9.   

    我这样执行为什么会出错;
          Query2.Close ;
          Query2.SQL.Clear;
          Query2.SQL.Add(' DELETE from CXTABLE ');
          Query2.ExecSQL;
    帮个忙,谢谢。
      

  10.   

    首先你要明白TQuery和TStoreProc的区别是什么,TQuery是用来执行一个SQL语句的,TStoreProc是用来执行一个数据库存储过程的!
      

  11.   

    TStoreProc和存储过程必须一一对应吗?
    如果不是请指点一下,怎么实现,一对多
      

  12.   

    TStoreProc和存储过程不是一一对应,这个控件有个属性,可以给它赋值(存储过程的名字),