REVISIÓN: El método OracleDataReader.GetChars puede devolver los datos incorrectos en .NET Framework 2.0

Seleccione idioma Seleccione idioma
Id. de artículo: 922674 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

En esta página

Síntomas

En Microsoft .NET Framework 2.0, el método OracleDataReader.GetChars puede devolver los datos incorrectos la segunda vez que leen datos desde el objeto OracleDataReader . Después de la segunda que llamar al método OracleDataReader.Read , el método OracleDataReader.GetChars puede devolver los datos de la primera fila.

Solución

Información de revisiones

Hay una revisión compatible de Microsoft. Sin embargo, se diseñó para corregir el problema descrito en este artículo. Aplíquela sólo a sistemas que experimenten este problema específico. Este hotfix puede ser sometido a comprobaciones adicionales. Por lo tanto, si no se ve muy afectado por este problema, recomendamos que espere al próximo service pack de .NET Framework 2.0 que contenga este hotfix.

Para resolver este problema inmediatamente, póngase en contacto con servicios de soporte de cliente de Microsoft para obtener la revisión. Para obtener una lista completa de los números de teléfono de los servicios de soporte técnico de Microsoft e información acerca de los costos de soporte, visite el siguiente sitio Web:
http://support.microsoft.com/contactus/?ws=support
Nota en casos especiales, los costos derivados normalmente de las llamadas al soporte técnico pueden cancelarse si un profesional de soporte técnico de Microsoft determina que una actualización específica resolverá el problema. Los costos habituales de soporte se aplicarán a las preguntas de soporte técnico adicionales y problemas que no guarden relación con la actualización en cuestión.

Requisitos previos

No se necesita ningún requisito previo.

Requisito de reinicio

Debe reiniciar el equipo después de aplicar este hotfix.

Información acerca de la sustitución de la revisión

Este hotfix no sustituye a otros hotfix.

Información de archivo

La versión en inglés de este hotfix tiene los atributos de archivo (o atributos de último archivo) mostrados en la siguiente tabla. Las fechas y las horas de estos archivos se muestran en 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 el elemento fecha y hora en el panel de control.
Contraer esta tablaAmpliar esta tabla
Nombre de archivoArchivo VersiónTamaño del archivoFechaTiempo
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.nlpNo aplicable59,34208-Jul-200611: 28
Normnfc.nlpNo aplicable45,79408-Jul-200611: 28
Normnfd.nlpNo aplicable39,28408-Jul-200611: 28
Normnfkc.nlpNo aplicable66,38408-Jul-200611: 28
Normnfkd.nlpNo aplicable60,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

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:".

Más información

Para obtener más información, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
824684Descripción de la terminología estándar utilizada para describir las actualizaciones de software de Microsoft
Para obtener más información acerca del método OracleDataReader.GetChars , visite el siguiente sitio Web de Microsoft Developer Network (MSDN):
http://msdn2.microsoft.com/en-us/library/system.data.oracleclient.oracledatareader.getchars(VS.80).aspx

Pasos para reproducir el problema

  1. Inicie Microsoft Visual Studio 2005.
  2. En el menú archivo , haga clic en nuevo y, a continuación, haga clic en proyecto .
  3. Haga clic en C# , haga clic en Aplicación de consola , escriba ConsoleApplication1 en el cuadro nombre y, a continuación, haga clic en Aceptar .
  4. En el archivo Program.cs, reemplace el código existente mediante el código siguiente.
    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. En el Explorador de soluciones , haga clic con el botón secundario en referencias y, a continuación, haga clic en Agregar referencia .
  6. Haga clic en la ficha .NET , haga clic en System.Data.OracleClient y, a continuación, haga clic en Aceptar .
  7. En el menú Depurar , haga clic en Iniciar la depuración .

Propiedades

Id. de artículo: 922674 - Última revisión: lunes, 03 de diciembre de 2007 - Versión: 1.1
La información de este artículo se refiere a:
  • Microsoft .NET Framework 2.0
Palabras clave: 
kbmt kbfix kbbug kbhotfixserver kbqfe kbpubtypekc KB922674 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): 922674

Enviar comentarios

 

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