REVISIÓN: Controlador Microsoft ODBC para Oracle no es correcta en Client Cursor con cierre incrustado

Seleccione idioma Seleccione idioma
Id. de artículo: 292604 - Ver los productos a los que se aplica este artículo
Este artículo se ha archivado. Se ofrece "tal cual" y no se volverá a actualizar.
Expandir todo | Contraer todo

En esta página

Síntomas

Cuando se utiliza un cursor de cliente frente a Oracle base de datos con el controlador ODBC de Microsoft para Oracle, una actualización diferida no es correcta y recibirá el siguiente mensaje de error:
0 x 80004005 ("información de tabla base insuficiente para actualizar o actualizar")
Esto ocurre cuando la instrucción SQL SELECT incluye una cláusula WHERE que tiene un corchete incrustado. El problema sólo se produce con un cursor de cliente cuando los criterios de la cláusula WHERE del conjunto de registros se coloca entre paréntesis y los criterios de cadena contiene corchetes.

Causa

ActiveX Data Objects (ADO) Client Cursor Engine no analiza correctamente la instrucción y no se puede actualizar el conjunto de registros.

Solución

Para resolver este problema, obtenga el service pack más reciente de Microsoft MDAC 2.5. Para obtener información adicional, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
293312INFO: Cómo obtener la más reciente de MDAC 2.5 Service Pack
La versión en inglés de esta revisión tiene los atributos de archivo enumerados en la siguiente tabla u otros posteriores. Las fechas y horas de estos archivos aparecen en la hora universal coordinada (UTC). La información de los archivos se convertirá a la hora local cuando la vea. Para averiguar la diferencia entre hora UTC y la hora local, utilice la ficha zona horaria de la herramienta fecha y hora en el panel de control.
   Date         Version       Size     File name     Platform
   ----------------------------------------------------------------
   03-07-2001   2.53.7307     327,952  Msadce.dll    x86
				

Estado

Microsoft ha confirmado que se trata de un problema de los productos de Microsoft enumerados en la sección "La información de este artículo se refiere a:" de este artículo. Este problema se corrigió por primera vez Microsoft MDAC 2.5 Service Pack 3 de.

Más información

El problema no ocurre con el Microsoft OLE DB para Oracle (MSDAORA) del proveedor.

Pasos para reproducir el comportamiento

  1. Crear un EXE estándar de Microsoft Visual Basic 6.0 nuevo proyecto. De forma predeterminada, se crea Form1.
  2. En el menú proyecto , haga clic en referencias y, a continuación, agregue una referencia a Microsoft ActiveX Data Objects 2.5 Library.
  3. Pegue el código siguiente en el evento Form_Load de Form1:
    
    
      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. Cambie la cadena de conexión para conectarse a su Oracle servidor.
  5. Crear una tabla UpdateTest con MiClave (clave principal), UpdateVal y LookUpVal.
  6. Agregue dos filas como sigue:
    • Primer registro contiene LookUpVal = Test2(Test2
    • Segundo registro contiene LookUpVal = Prueba1

  7. Iniciar el proyecto.

Propiedades

Id. de artículo: 292604 - Última revisión: miércoles, 26 de febrero de 2014 - Versión: 3.2
La información de este artículo se refiere a:
  • Microsoft Data Access Components 2.5 Service Pack 1
  • Microsoft Data Access Components 2.5 Service Pack 2
Palabras clave: 
kbnosurvey kbarchive kbmt kbhotfixserver kbqfe kbmdac250sp3fix kbbug kbfix kboracle kbwin2000sp3fix KB292604 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 292604

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