为什么我的delphi看不到oracle中定义的存储过程的参数?

he_qiancsdn 2003-06-03 10:21:33
我用的是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中可以正常调用。这种问题到底是什么原因造成的请高手指点。
...全文
93 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
he_qiancsdn 2003-06-06
  • 打赏
  • 举报
回复
问题已经解决了,
问题出在对于Oracle数据库的存储过程Delphi不支持函数型存储过程,同时参数的类型也只能是Oracle支持的那几种,而对于SQl/plus中的Boolean等扩展类型一样不支持,直接报告不能执行错误,
因此如果要提供给Delphi程序调用的存储过程,只能使用procedure 而且如果要传结果就要通过procedure中的out型参数。而且参数类型只能是string,integer,float,double,date等Oracle数据库的基本类型。
fhuibo 2003-06-04
  • 打赏
  • 举报
回复
up
he_qiancsdn 2003-06-04
  • 打赏
  • 举报
回复
to pingshx()
我的配置应该是没有什么问题,因为单纯的测试表和查询什么都没有问题,就是看不到存储过程的参数列表:(
请大家帮帮忙吧。
真的没有人遇到吗?
pingshx 2003-06-04
  • 打赏
  • 举报
回复
http://www.oradb.net/setup/delphiora_001.htm
hansion3406 2003-06-04
  • 打赏
  • 举报
回复
不懂..没有用过ORACLE
he_qiancsdn 2003-06-04
  • 打赏
  • 举报
回复
怎么没有人知道么?
belllab 2003-06-04
  • 打赏
  • 举报
回复
up
随便说说最近项目的三层架构吧。讲点实际的东西。我最讨厌空讲道理。网上讲道理的太多了,不喜欢举例子。 大多数文章都或多或少的讲到了三层架构。表示层,业务层,数据层。又把业务层再细分,分为外观服务层,主业务服务,及数据库库服务层。 今天主要讨论一下业务层吧。举个最简单的例子。客户端获取数据。 业务层要与表示层尽量解藕, 我的方法是:首先我们在间层TLB_定义一个接口 IBusinessService, 定义一个方法。getvoList,我要得到一个VO的列表, VO即ValueObject, 例如:TValueObject= class(TPersistent) private b_insertFlag :Boolean; b_updateFlag :Boolean; b_deleteFlag :Boolean; d_rowVersion :double; procedure setInsertFlag(pInsertFlag :Boolean); function getInsertFlag: Boolean; procedure setUpdateFlag(pUpdateFlag :Boolean); function getUpdateFlag: Boolean; procedure setDeleteFlag(pDeleteFlag :Boolean); function getDeleteFlag: Boolean; procedure setRowVersion(pRowVersion :double); function getRowVersion:double; protected function GetOLEData: OleVariant; virtual; procedure SetOLEData(const Value: OleVariant); virtual; published property bInsertFlag: Boolean read getInsertFlag write setInsertFlag; property bUpdateFlag: Boolean read getUpdateFlag write setUpdateFlag; property bDeleteFlag: Boolean read getDeleteFlag write setDeleteFlag; property dRowVersion: double read getRowVersion write setRowVersion; property POLEData:OleVariant read GetOLEData write SetOLEData; end;TUserVO = class(TValueObject) private id: string; name: string; password: string; 。。。。。。。。。。 VO的列表:TValueObjectList = Class(TObjectList) private ValueObject: TValueObject; ClassName: TClass; procedure setClassName(pTmpClsName :TClass); function getClassName: TClass; procedure setValueObject(pTmpVO :TValueObject); function getValueObject: TValueObject; protected function GetOLEData: OleVariant; virtual; procedure SetOLEData(const Value: OleVariant); virtual; published function AddItem(index: integer; AObject: TObject ):Integer; virtual; function GetItem(index, itemid: integer ): TObject; virtual; function CountItem:Integer; virtual; public constructor Create; virtual; destructor Destroy; override; procedure AfterConstruction; override; property PClassName: TClass read getClassName write setClassName; property POLEData: Ole

5,928

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧