Métodos para eliminar SQL Server CE, SQL Server 2005 Compact Edition o bien SQL Server 2005 Mobile Edition de objetos administran de la memoria

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

Resumen

Este artículo describen las diferentes formas de disponer de la objetos gestionados en Microsoft SQL Server 2000 Windows CE Edition, en Microsoft SQL Server 2005 Compact Edition o en SQL Server 2005 Mobile Edition que se utilizan en aplicaciones que cree mediante el uso de Microsoft Visual Studio.NET que utilizan Microsoft.NET Compact Framework.

Más información

El elemento.NET Compact Framework Data Provider para SQL Server CE, SQL Server 2005 Compact Edition o SQL Server 2005 Mobile Edition admite una colección de clases, incluidos los SqlCeCommand clase, el SqlCeConnection (clase), y el SqlCeDataReader clase. Puede utilizar los objetos que son las instancias de estos clases para tener acceso a una base de datos de SQL Server CE, SQL Server 2005 Compact Edition o SQL Server 2005 Mobile Edition desde dispositivos que ejecutan Microsoft Windows CE en un entorno administrado. Sin embargo, hay que liberar la memoria asignada a los objetos si los objetos ya no son necesarios.

Puede utilizar los métodos siguientes para liberar la memoria que está asignada a la objetos de las clases.

Nota Microsoft recomienda que utilice el Close() método o la Dispose() método y la siguiente codificación de estilo para liberar la memoria para la objetos de la.NET que contiene nativo referencias.
  • Utilice el Close() método o la Dispose() método. Todas las clases que contienen nativo implementan las referencias a SQL Server CE, a SQL Server 2005 Compact Edition o a SQL Server 2005 Mobile Edition la IDisposable interfaz. Dado que estas clases implementan la IDisposable interfaz, el Dispose() método de el IDisposable interfaz que puede utilizarse para liberar la memoria para la objeto administrado.

    Estas clases también implementar un Close() método que es similar a la Dispose() método. Por lo tanto, se puede llamar a cualquiera el Close()método o la Dispose() método para liberar la memoria que está asignada a la objeto. Sin embargo, si se llama a la Close() método, no tiene que Llame a la Dispose() método.

    Por ejemplo, al utilizar el SqlCeDataAdapter clase para llenar un dataset, explícitamente debe disponer de todos los asociadosSqlCeCommand las instancias que representan comandos SELECT, insertar comandos, comandos de actualización, o eliminar comandos. Puede utilizar el siguiente estilo de codificación para cualquiera.NET que la clase contiene referencias nativas:
     SqlCeConnection conn = null; 
     try
     {
    	 conn = new SqlCeConnection(<ConnectionString>);
    	 conn.Open(); 
    	// Work with the connection object
    }
    catch (Exception en)
    {
    	// Handle the exception or rethrow it
    }
    finally
    {
    	// Always release the native references in the finally clause
    	// The statements in finally clause are guaranteed to run
    
    	if (null != conn) conn.Close(); 
    } 
  • Utilice el Collect() método de la GC Clase del recolector de elementos.

    Nota Es extremadamente costoso ejecutar Collect() método de la GC Clase del recolector de elementos. Por lo tanto, Microsoft recomienda que utilice de la Collect()método de la GC Clase del recolector de elementos sólo cuando debe hacerlo.

    Utilizar el estilo de codificación siguiente para llamar a la Collect()método del recolector de elementos no utilizados en la aplicación:
    try
    {
           SqlCeConnection conn = null;
           conn = new SqlCeConnection(<ConnectionString>);
           conn.Open(); 
     
           // The connection instance goes out of scope and effectively loses native references here
           // The conn object is only disposed of when the Garbage Collector starts finalizing objects,
           // but this only occurs under memory pressure.
           // If many objects are allocated like this, the performance of the program decreases.
    }
    catch (Exception en)
    {
           // Handle the exception or rethrow it
    }
    finally
    { 
           // If GC.Collect() is called, the Garbage Collector is forced to run all the finalizers in the finalization queue. 
           // Therefore, the connection instance that was previously lost is disposed of here by the Collect method of the GC Garbage Collector class. 
           // By putting this in the finally clause we guarantee it will always be executed even if the exception is rethrown
           
           GC.Collect();
    }
     
    Si utiliza el estilo de codificación en el primer punto de viñeta en esta lista, no es necesario llamar explícitamente a laCollect() método del recolector de elementos no utilizados.

Referencias

Para obtener más información acerca de la IDisposable la interfaz, visite el sitio Web de Microsoft siguiente:
http://msdn2.Microsoft.com/en-us/library/System.IDisposable (vs.71) .aspx
Para obtener más información acerca de el GC.Collect() método, visite el siguiente sitio Web de Microsoft:
http://msdn2.Microsoft.com/en-us/library/aa903907 (VS.71) .aspx
Para obtener más información acerca de el SqlCeConnection.Close método, visite el siguiente sitio Web sitio:
http://msdn2.Microsoft.com/en-us/library/System.Data.SqlServerCe.SqlCeConnection.Close (vs.71) .aspx
Para obtener más información, haga clic en los números de artículo siguientes para verlos en Microsoft Knowledge Base:
824462SqlCeCommand objetos no se eliminen automáticamente si se utiliza un objeto SqlCeDataAdapter
326164 Utilidad de Dumpmem para ver el espacio de direcciones virtuales en Pocket PC 2002
827837 REVISIÓN: Conexión de SQL Server CE provoca una condición de la memoria cuando se crean muchos objetos SqlCeDataReader

Propiedades

Id. de artículo: 834279 - Última revisión: martes, 13 de diciembre de 2011 - Versión: 1.0
La información de este artículo se refiere a:
  • Microsoft .NET Compact Framework
  • Microsoft Visual Studio .NET 2003 Enterprise Architect
  • Microsoft Visual Studio .NET 2003 Professional
  • Microsoft Visual Studio .NET 2003 Enterprise Developer
  • Microsoft Visual Studio .NET 2003 Academic Edition
  • Microsoft SQL Server 2005 Compact Edition
Palabras clave: 
kbgarbagecollect kbmemory kbappdev kbcodesnippet kbcode kbinfo kbmt KB834279 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): 834279

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