FIX: Microsoft ODBC 驱动程序的 Oracle 未成功使用嵌入括号的客户端游标上

文章翻译 文章翻译
文章编号: 292604 - 查看本文应用于的产品
本文已归档。它按“原样”提供,并且不再更新。
展开全部 | 关闭全部

本文内容

症状

当您使用客户端游标与 Oracle 数据库与 Oracle,延迟更新为 Microsoft ODBC 驱动程序不成功,您会收到以下错误消息:
0x80004005 ("没有足够的基础表信息的更新或刷新")
当将 SQL SELECT 语句包含具有嵌入的支架的 WHERE 子句时,会出现这种情况。仅时出现问题与客户端游标条件的 WHERE 子句的记录集将放入括号和字符串条件中包含方括号。

原因

ActiveX 数据对象 (ADO) 客户端游标引擎不会成功地分析该语句,并不能更新记录集。

解决方案

若要解决此问题,获得最新的 service pack,对于 Microsoft MDAC 2.5。有关更多的信息请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
293312信息: 如何获取最新 MDAC 2.5 服务包
此修复程序的英文版具有文件属性 (或更高版本) 下表中列出。其格式为协调通用时间 (UTC) 列出日期和时间对这些文件。当您查看文件信息时,将转换为本地时间。若要 UTC 与本地时间之间的时差使用控制面板中的日期和时间工具中的 时区 选项卡。
   Date         Version       Size     File name     Platform
   ----------------------------------------------------------------
   03-07-2001   2.53.7307     327,952  Msadce.dll    x86
				

状态

Microsoft 已经确认这是在本文开头列出的 Microsoft 产品中的问题。 Microsoft MDAC 2.5 Service Pack 3 中,第一次已得到纠正此问题。

更多信息

该问题不会发生 Microsoft OLE DB 提供程序的 Oracle (MSDAORA)。

重现行为的步骤

  1. 创建一个新 Microsoft Visual Basic 6.0 标准 EXE 项目。默认状态下,创建 Form1。
  2. 项目 菜单上单击 引用,然后添加对 Microsoft ActiveX 数据对象 2.5 引用库。
  3. 将以下代码粘贴到 Form1 的 Form_Load 事件中:
    
    
      Dim con As ADODB.Connection
      Dim rst As ADODB.Recordset
      
      Set con = New ADODB.Connection
      With con
        .CursorLocation = adUseClient
        .ConnectionString = "Provider=MSDASQL.1;UID=MyUser;PWD=MyPwd;DRIVER={Microsoft ODBC for Oracle};SERVER=MyServer;"
        .Open
      End With
      
      Set rst = New ADODB.Recordset
      With rst
        .ActiveConnection = con
        .CursorLocation = adUseClient
        .CursorType = adOpenStatic
        .LockType = adLockOptimistic
        'This one fails!
        .Source = "SELECT MyKey,UpdateVal,LookUpVal FROM UpdateTest WHERE (LookUpVal = 'Test2(Test2')"
        'This one works!
            '.Source = "SELECT MyKey,UpdateVal,LookUpVal FROM UpdateTest where LookUpVal='Test1'"
        .Open
      End With
      
      rst.Fields(1).Value = 200
      rst.Update
    					
  4. 更改连接字符串连接到您的 Oracle 服务器。
  5. 创建包含 MyKey (主键)、 UpdateVal 和 LookUpVal 一个 UpdateTest 的表。
  6. 添加两个行,如下所示:
    • 第一条记录包含 LookUpVal = Test2(Test2
    • 第二个记录包含 LookUpVal = Test1

  7. 启动项目。

属性

文章编号: 292604 - 最后修改: 2014年2月24日 - 修订: 3.2
这篇文章中的信息适用于:
  • Microsoft Data Access Components 2.5 Service Pack 1
  • Microsoft Data Access Components 2.5 Service Pack 2
关键字:?
kbnosurvey kbarchive kbmt kbhotfixserver kbqfe kbmdac250sp3fix kbbug kbfix kboracle kbwin2000sp3fix KB292604 KbMtzh
机器翻译
注意:这篇文章是由无人工介入的微软自动的机器翻译软件翻译完成。微软很高兴能同时提供给您由人工翻译的和由机器翻译的文章, 以使您能使用您的语言访问所有的知识库文章。然而由机器翻译的文章并不总是完美的。它可能存在词汇,语法或文法的问题,就像是一个外国人在说中文时总是可能犯这样的错误。虽然我们经常升级机器翻译软件以提高翻译质量,但是我们不保证机器翻译的正确度,也不对由于内容的误译或者客户对它的错误使用所引起的任何直接的, 或间接的可能的问题负责。
点击这里察看该文章的英文版: 292604
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com