使用OLEDB连接Oracle数据库无法获取对象属性的原因

原创 2005年03月14日 09:20:00

出于效率及编程便利性考虑(CAD Client的连接速度实在是有点慢),在查询对象属性数据时往往是使用OLEDB直接连接Oracle进行相关查询的。然而,使用中发现偶尔会出现无法获取对象属性的问题。经分析,发现问题出在版本功能上。

SDE提供了版本管理功能,用户可以很方便的进行图形的审批、回滚等操作。然而,此功能在Oracle中需要其它表的辅助,主要包括了A表和D表。ArcSDE建立了版本后,关于表空间数据的增加、修改均通过相应的A表和D表实现。由于直接使用OLEDB在访问时只查询到没有修改的版本基表,因而无法检索到创建版本之后新增加或者修改的对象的信息。

有关版本的具体机制可参见:
http://gis.esri.com/library/userconf/proc01/professional/papers/pap232/p232.htm

解决该问题的有两类方案:修改系统查询机制,或者是在Oracle中建立相关的视图。
若采用修改系统的方法,考虑到SDE CAD Client效率较低,则应考虑采用SDE提供的C API重写相关代码,相对修改较大。
若采用建立视图的方法,则可使用指令sdetable,把操作定为create_mv_view,即可针对指定的表建立相应的视图,并把相关的权限赋予对应的Oracle帐号即可。但每个注册为版本的要素类都需要建立对应的视图才可以避免上述问题产生。
以下简单列一下几个解决方案的优缺点。

  CAD Client  C API  OLEDB
 查询速度 慢 快 快
 是否需开发代码 是 是 否
 自适应性  好 好 差 
 修复此问题时间  慢 慢 快

 

相关文章推荐

使用OracleClient,OLEDB,ODBC,Visual Studio,ODP.NET 来连接 Oracle访问数据库

下面也要介绍的是通过 System.Data.OracleClient 来完成 ASP.NET 页面访问 Oracle 数据库, 其实呢,还是比较简单的, 首先介绍一下...
  • xwnxwn
  • xwnxwn
  • 2012年08月04日 11:27
  • 833

【转】oracle 字符集乱码解决-.Net 中读写Oracle数据库常用两种方式:OracleClient和OleDb

FYI 由于历史的原因,早期的oracle没有中文字符集(如oracle6、oracle7、oracle7.1),但有的用户从那时起就使用数据库了, 并 用US7ASCII字符集存储了中文,或是有...

oracle数据库OracleDBconsole服务无法启动的原因及其解决思路

解决问题的思路很新颖,学到这这方法对于其他许多类似的问题解决同样适用。 装Oracle 11g,装完数据库软件、新建一个数据库(数据库的SID为orcl20120825),但是无法进入网页版...

NET3.5 的OracleConnection对象连接Oracle数据库的bug

命名空间:using System.Data.OracleClient 类:OracleConnection   工程名:windowsapplication1 连接代码:       ...

VBA连接Oracle数据库的两种连接字符串的区别:MSDAORA-对象关闭时不允许操作

VBA连接数据库有两种连接字符串: dataSource = Chr(34) & "(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HO...

使用OLE对象访问Oracle数据库

使用OLE对象访问Oracle数据库 来源: 作者: 2006-08-02 出处:PCDOG.COM   关键字:       OLE即对象联接和嵌入技术,使用这一技术,我们在VB中不用任何控件就可轻...

oracle数据库对象的创建和使用

数据库中有一worker表,内容如下: SQL> select * from worker;   职工号码 姓名     性别 出生日期    党员否 参加工作        部门号 --------...

C# 连接 Oracle 数据库(三种方式:OracleClient、ODBC、OLEDB)

C# 连接 Oracle 数据库(三种方式:OracleClient、ODBC、OLEDB)

ORACLE数据库---"ORA-00942: 表或视图不存在 "的原因和解决方法

"ORA-00942: 表或视图不存在 "的原因和解决方法 采用Oracle数据库,使用Powerdesigner设计,生成Sql文件导入后查询出现“ORA-00942: 表或视图不存在 ”,...

oracle数据库恢复报ORA-00283,ORA-01610错误原因

可能很多人在做数据库恢复时,都遇到过如下错误: SQL> recover database; ORA-00283: recovery session canceled due to errors O...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用OLEDB连接Oracle数据库无法获取对象属性的原因
举报原因:
原因补充:

(最多只允许输入30个字)