我用的是delphi6 采用BDE的native oracle连接oracle 8.1.7 (用odbc for oracle 无法看到数据库中的存储过程,用microsoft for oracle 无法执行query 中带有参数的sql语句,而且也看不到存储过程的参数),用BDE 连接前两个问题都已经解决了,但是无法执行带有参数的存储过程。在database explore中每个存储过程的parameters列表中是空的。用Tstoredproc在设计期也看不到存储过程的参数列表。在运行期动态创建。调用exeproc报告"operation not applicable"这到底是什么问题呢?存储过程在sqlplus中可以正常调用。这种问题到底是什么原因造成的请高手指点。

解决方案 »

  1.   

    http://www.oradb.net/setup/delphiora_001.htm
      

  2.   

    to pingshx() 
    我的配置应该是没有什么问题,因为单纯的测试表和查询什么都没有问题,就是看不到存储过程的参数列表:(
    请大家帮帮忙吧。
    真的没有人遇到吗?
      

  3.   

    问题已经解决了,
    问题出在对于Oracle数据库的存储过程Delphi不支持函数型存储过程,同时参数的类型也只能是Oracle支持的那几种,而对于SQl/plus中的Boolean等扩展类型一样不支持,直接报告不能执行错误,
    因此如果要提供给Delphi程序调用的存储过程,只能使用procedure 而且如果要传结果就要通过procedure中的out型参数。而且参数类型只能是string,integer,float,double,date等Oracle数据库的基本类型。