使用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
 查询速度 慢 快 快
 是否需开发代码 是 是 否
 自适应性  好 好 差 
 修复此问题时间  慢 慢 快

 

oledb 连接Excel文件所对应的的多种连接方式

Excel在我们日常生活中使用非常的普遍,统计数据,特别是公司里的财务数据,销售数据等等,使用Excel能大大提高工作的效率。并且可以快速方便的移动数据,共享数据。在软件开发中,特别是开发一些MIS系...
  • sdd379733766
  • sdd379733766
  • 2013年08月08日 17:02
  • 1031

C#连接OleDBConnection数据库的操作

对于不同的.net数据提供者,ADO.NET采用不同的Connection对象连接数据库。这些Connection对我们屏蔽了具体的实现细节,并提供了一种统一的实现方法。 Connection类有四种...
  • u012848631
  • u012848631
  • 2015年06月11日 09:30
  • 6724

使用.udl快速测试与数据库的连接并得到连接字符串(OLEDB、ADO)

现在在开发OLEDB和ADO程序,学到了一招,共享大家, 新建一个txt文件,把后缀改成udl,双击会弹出一个界面,输入相应信息最后确定, 再以文本方式打开本文件,即可得到正确的连接串 ...
  • wangcg123
  • wangcg123
  • 2015年03月03日 15:02
  • 1064

在datagrid中,IE浏览器报错:SCRIPT5007: 无法获取属性“rowspan”的值: 对象为 null 或未定义

在最近所做的一个项目中,要求用jquey easyUi控件来做一个工资核算的展示页面, 展示的页面要求如下所示:   本来做这个datagrid的表头挺简单的,并且按部门名称进行合并,但是在...
  • civilized
  • civilized
  • 2013年02月18日 20:21
  • 11699

利用Oledb操作Xlsx文件

利用Oledb操作Xlsx文件 简介: 解决方案: Form1.designer.cs: namespace XlsxViaOledb { partial class Form1 {...
  • pengzhen8805
  • pengzhen8805
  • 2016年06月20日 11:04
  • 519

ODBC、OLEDB、ADO、ADO.NET之间的关系

相信看到这篇文章的人,心中肯定有这样的想法:ODBC、OLEDB、ADO、ADO.NET貌似都是访问数据库的东东,那么他们之间有什么区别,又有什么联系呢?不要着急,待我慢慢道来。 先说ODBC,官...
  • xiaoduishenghuogo
  • xiaoduishenghuogo
  • 2013年08月03日 11:48
  • 6091

远程桌面连接:远程桌面由于以下原因之一无法连接到远程计算机

计算机如何建立远程桌面连接有的时候身在远方,想查看或者调用自己狗窝(宿舍或者家)里的机器的文件,怎么办呢?可以通过远程桌面登录自己个的电脑,利用剪切板的功能便可以实现文件之间的传送。当然,假如家里的电...
  • lusongno1
  • lusongno1
  • 2017年02月22日 02:34
  • 19129

【ASP】OLEDB方式连接各类数据库(sql,access,excel,txt)

【ASP】OLEDB方式连接各类数据库(sql,access,excel,txt)
  • rtian001
  • rtian001
  • 2015年12月11日 08:32
  • 987

C#操作Excel的OLEDB方式与COM方式比较

在对Excel进行读写操作时,使用微软自身提供的解决方案,有两种,分别是OLEDB方式和调用COM组件的方式 1. OLEDB方式 用这种方法读取Excel速度相对调用COM组件来讲是非常的快的,...
  • sundacheng1989
  • sundacheng1989
  • 2013年03月14日 15:45
  • 5020

js取form对象方法,表单属性和方法

获取表单对象方法一、var form = document.forms['myform'];  得到表单的值:var usrname = form.elements['usrname'].value...
  • XingKong22star
  • XingKong22star
  • 2014年08月18日 16:04
  • 4344
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用OLEDB连接Oracle数据库无法获取对象属性的原因
举报原因:
原因补充:

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