CORRECÇÃO: Driver Microsoft ODBC para Oracle não é bem-sucedida no cursor de cliente com colchete incorporado

Traduções deste artigo Traduções deste artigo
ID do artigo: 292604 - Exibir os produtos aos quais esse artigo se aplica.
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Expandir tudo | Recolher tudo

Neste artigo

Sintomas

Quando você usa um cursor ao lado do cliente contra um Oracle banco de dados com o Driver Microsoft ODBC para Oracle, uma atualização adiada não é bem-sucedido e você recebe a seguinte mensagem de erro:
0 x 80004005 ("tabela de base insuficiente informações para atualização")
Isso ocorre quando a instrução SQL SELECT inclui uma cláusula WHERE que tem um colchete incorporado. O problema ocorre apenas com um cursor do lado do cliente quando o critério na cláusula WHERE do conjunto de registros é colocada entre parênteses e os critérios de seqüência de caracteres contendo colchetes.

Causa

O ActiveX Data Objects (ADO) Client Cursor Engine não analisa a instrução com êxito e não é possível atualizar o conjunto de registros.

Resolução

Para resolver esse problema, obtenha o service pack mais recente para o Microsoft MDAC 2.5. Para obter informações adicionais, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
293312INFO: Como obter o último MDAC 2.5 Service Pack
A versão em inglês dessa correção apresenta os atributos de arquivo (ou posteriores) listados na tabela a seguir. As datas e horas desses arquivos são listadas na acordo hora universal coordenada (UTC). Quando você exibe as informações do arquivo, ele é convertido para a hora local. Para encontrar a diferença entre o UTC e a hora local, use a guia fuso horário na ferramenta Data e hora no painel de controle.
   Date         Version       Size     File name     Platform
   ----------------------------------------------------------------
   03-07-2001   2.53.7307     327,952  Msadce.dll    x86
				

Situação

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados no começo deste artigo. Esse problema foi corrigido primeiro no Microsoft MDAC 2.5 Service Pack 3.

Mais Informações

O problema não ocorre com o Microsoft OLE DB para Oracle (MSDAORA) provedor.

Passos para reproduzir o problema

  1. Criar um novo Microsoft Visual Basic 6.0 Standard EXE Project. Por padrão, é criado o Form1.
  2. No menu Project , clique em referências e, em seguida, adicione uma referência para Microsoft ActiveX Data Objects 2.5 Library.
  3. Cole o seguinte código no evento Form_Load do 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. Altere a seqüência de conexão para se conectar ao Oracle servidor.
  5. Crie uma tabela UpdateTest com MyKey (chave primária), UpdateVal e LookUpVal.
  6. Adicione duas linhas da seguinte maneira:
    • Primeiro registro contém LookUpVal = Test2(Test2
    • Segundo registro contém LookUpVal = Test1

  7. Inicie o projeto.

Propriedades

ID do artigo: 292604 - Última revisão: segunda-feira, 24 de fevereiro de 2014 - Revisão: 3.2
A informação contida neste artigo aplica-se a:
  • Microsoft Data Access Components 2.5 Service Pack 1
  • Microsoft Data Access Components 2.5 Service Pack 2
Palavras-chave: 
kbnosurvey kbarchive kbmt kbhotfixserver kbqfe kbmdac250sp3fix kbbug kbfix kboracle kbwin2000sp3fix KB292604 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 292604

Submeter comentários

 

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