CORRECÇÃO: O controlador Microsoft ODBC para Oracle não é concluída com êxito no cursor de cliente com o parêntese incorporado

Traduções de Artigos Traduções de Artigos
Artigo: 292604 - Ver produtos para os quais este artigo se aplica.
Este artigo foi arquivado. Este artigo é oferecido "tal como está" e deixará de ser actualizado.
Expandir tudo | Reduzir tudo

Nesta página

Sintomas

Quando utilizar um cursor do lado do cliente contra um Oracle base de dados com o controlador de ODBC da Microsoft para Oracle, uma actualização diferida não bem sucedida e é apresentada a seguinte mensagem de erro:
0 x 80004005 ("tabela base insuficiente informações para actualizar ou actualizar")
Isto ocorre quando a instrução SELECT de SQL inclui uma cláusula WHERE que tem um símbolo incorporado. O problema ocorre apenas com um cursor do lado do cliente quando os critérios a cláusula WHERE do conjunto de registos é colocada em parênteses e os critérios de cadeia contém parênteses rectos.

Causa

O motor do cursor cliente ActiveX Data Objects (ADO) não analisa a instrução com êxito e não consegue actualizar o conjunto de registos.

Resolução

Para resolver este problema, obtenha o service pack mais recente do Microsoft MDAC 2.5. Para obter informações adicionais, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
293312INFO: Como obter o mais recente MDAC 2.5 Service Pack
A versão inglesa desta correcção tem os atributos de ficheiro (ou posteriores) listados na seguinte tabela. As datas e horas destes ficheiros são indicadas no formato de universal hora (UTC) coordenada Coordinated. Quando visualiza as informações do ficheiro, é convertido para a hora local. Para determinar a diferença entre a UTC e a hora local, utilize o separador fuso horário na ferramenta Data e hora no painel de controlo.
   Date         Version       Size     File name     Platform
   ----------------------------------------------------------------
   03-07-2001   2.53.7307     327,952  Msadce.dll    x86
				

Ponto Da Situação

A Microsoft confirmou que este é um problema nos produtos da Microsoft listados no início deste artigo. Este problema foi corrigido pela primeira vez no Microsoft MDAC 2.5 Service Pack 3.

Mais Informação

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

Passos para reproduzir o comportamento

  1. Criar um novo Microsoft Visual Basic 6.0 EXE padrão Project. Por predefinição, é criado o Form1.
  2. No menu Project , clique em References e, em seguida, adicione uma referência para o Microsoft ActiveX Data Objects 2.5 biblioteca.
  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 cadeia de ligação para ligar a Oracle servidor.
  5. Crie uma tabela UpdateTest com MyKey (chave primária), UpdateVal e LookUpVal.
  6. Adicione duas linhas da seguinte forma:
    • Primeiro registo contiver LookUpVal = Test2(Test2
    • Segundo registo contém LookUpVal = Teste1

  7. Inicie o projecto.

Propriedades

Artigo: 292604 - Última revisão: 26 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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes 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