CORRECÇÃO: O método OracleDataReader.GetChars poderá devolver dados incorrectos no .NET Framework 2.0

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: 922674
Este artigo foi arquivado. Este artigo é oferecido "tal como está" e deixará de ser actualizado.
Sintomas
No Microsoft .NET Framework 2.0, o método OracleDataReader.GetChars poderá devolver dados incorrectos pela segunda vez que ler dados do objecto OracleDataReader . Depois do tempo segundo chamar o método OracleDataReader.Read , o método OracleDataReader.GetChars pode devolver os dados da primeira linha.
Resolução

Informações sobre a correcção

Uma correcção suportada está agora disponível da Microsoft. Contudo, destina-se a corrigir o problema descrito neste artigo. Aplique-a apenas em sistemas que tenham este problema específico. Esta correcção poderá submetida a testes adicionais. Por conseguinte, se não estiver a ser gravemente afectado por este problema, recomendamos que aguarde pelo próximo service pack do .NET Framework 2.0 que contenha esta correcção.

Para resolver este problema imediatamente, contacte o suporte técnico da Microsoft para obter a correcção. Para obter uma lista completa dos números de telefone de suporte técnico da Microsoft e informações sobre os custos de suporte, visite o seguinte Web site da Microsoft: Nota Em casos especiais, os custos normalmente inerentes às chamadas de suporte poderão ser anulados, se um técnico de suporte da Microsoft determinar que uma actualização específica resolverá o problema. Os custos normais do suporte serão aplicados a problemas adicionais e questões de suporte que não se enquadrem na atualização específica em questão.

Pré-requisitos

Não pré-requisitos são necessários.

Requisito de reinício

Tem de reiniciar o computador depois de aplicar esta correcção.

Informações sobre substituição de correcções

Esta correcção não substitui quaisquer outras correcções.

Informações do ficheiro

A versão inglesa desta correcção tem os atributos de ficheiro (ou atributos de ficheiro posteriores) listados na seguinte tabela. As datas e horas destes ficheiros são indicadas na hora universal coordenada (UTC). 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 no item Data e hora no painel de controlo.
Nome de ficheiroVersão do ficheiroTamanho do ficheiroDataTempo
Mscordacwks.dll2.0.50727.178801,28008-Jul-200611: 28
Mscorlib.dll2.0.50727.1784,317,18408-Jul-200611: 28
Mscorwks.dll2.0.50727.1785,624,32008-Jul-200611: 27
Normalization.dll2.0.50727.17815,36008-Jul-200611: 28
Normidna.nlpNão aplicável59,34208-Jul-200611: 28
Normnfc.nlpNão aplicável45,79408-Jul-200611: 28
Normnfd.nlpNão aplicável39,28408-Jul-200611: 28
Normnfkc.nlpNão aplicável66,38408-Jul-200611: 28
Normnfkd.nlpNão aplicável60,29408-Jul-200611: 28
Sos.dll2.0.50727.178377,34408-Jul-200611: 28
System.data.dll2.0.50727.1782,893,82408-Jul-200611: 28
System.data.OracleClient.dll2.0.50727.178482,30408-Jul-200611: 28
Ponto Da Situação
A Microsoft confirmou que este é um problema nos produtos da Microsoft listados na secção "Aplica-se a".
Mais Informação
Para obter mais informações, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
824684Descrição da terminologia padrão utilizada para descrever actualizações de software da Microsoft
Para mais informações sobre o método OracleDataReader.GetChars , visite o seguinte Web site da Microsoft Developer Network (MSDN):

Passos para reproduzir o problema

  1. Inicie o Microsoft Visual Studio 2005.
  2. No menu ficheiro , clique em Novo e, em seguida, clique em projecto .
  3. Clique em Visual C# , clique em Aplicação da consola , escreva ConsoleApplication1 na caixa nome e, em seguida, clique em OK .
  4. No ficheiro Program.cs, substitua o código existente, utilizando o seguinte código.
    using System;using System.Text;using System.Data;using System.Data.OracleClient;namespace ConsoleApplication1{    class Program    {        private static void Main()        {            OracleConnection cn = new OracleConnection("Data Source=<DataSourceName>;uid=<UserName>;pwd=<Password>;");            cn.Open();            DropTable(cn);            CreateTable(cn);            OracleCommand command = cn.CreateCommand();            command.CommandText = "SELECT DATA FROM TEST_GETCHARS ORDER BY DATA DESC";            OracleDataReader reader = command.ExecuteReader();            while (reader.Read())            {                string getStringText = reader.GetString(0);                char[] chs = new char[40];                long count = reader.GetChars(0, 0, chs, 0, 40);                String s = new String(chs);                Console.WriteLine("String from GetString: {2}, String from GetChars: {0}, Character count: {1}", s, count.ToString(), getStringText);            }            cn.Close();            cn = null;        }        private static void CreateTable(IDbConnection connection)        {            IDbCommand command = connection.CreateCommand();            command.CommandText = "CREATE TABLE TEST_GETCHARS (DATA varchar(40))";            command.ExecuteNonQuery();            command.CommandText = "INSERT INTO TEST_GETCHARS (DATA) VALUES('yes')";            command.ExecuteNonQuery();            command.CommandText = "INSERT INTO TEST_GETCHARS (DATA) VALUES('no')";            for (int i = 0; i < 2000; i++)            command.ExecuteNonQuery();        }        private static void DropTable(IDbConnection connection)        {            try            {                IDbCommand command = connection.CreateCommand();                command.CommandText = "DROP TABLE TEST_GETCHARS";                command.ExecuteNonQuery();            }            catch (Exception)            {            }        }    }}
  5. No Solution Explorer , clique com o botão direito do rato em References e, em seguida, clique em Add Reference .
  6. Clique no separador .NET , clique em System.data.OracleClient e, em seguida, clique em OK .
  7. No menu Debug , clique em Iniciar a depuração .
OracleDataReader GetChars

Aviso: Este artigo foi traduzido automaticamente

Propriedades

ID do Artigo: 922674 - Última Revisão: 01/17/2015 15:31:05 - Revisão: 1.1

Microsoft .NET Framework 2.0

  • kbnosurvey kbarchive kbmt kbfix kbbug kbhotfixserver kbqfe kbpubtypekc KB922674 KbMtpt
Comentários