Representa una conexión abierta a un origen de datos.
Espacio de nombres: System.Data.Odbc
Ensamblado: System.Data (en system.data.dll)
Visual Basic (Declaración)
Public NotInheritable Class OdbcConnection
Inherits DbConnection
Implements ICloneable
Dim instance As OdbcConnection
public sealed class OdbcConnection : DbConnection, ICloneable
public ref class OdbcConnection sealed : public DbConnection, ICloneable
public final class OdbcConnection extends DbConnection implements ICloneable
public final class OdbcConnection extends DbConnection implements ICloneable
Un objeto OdbcConnection representa una conexión exclusiva a un origen de datos creada mediante una cadena de conexión o un nombre de origen de datos ODBC (DSN). En el caso de un sistema de bases de datos de cliente y servidor, equivale a una conexión de red al servidor. Dependiendo de la funcionalidad que admita el controlador ODBC nativo, algunos métodos o propiedades de un objeto OdbcConnection pueden no estar disponibles.
El objeto OdbcConnection utiliza recursos nativos, como el entorno ODBC e identificadores de conexión. Es preciso cerrar siempre explícitamente cualquier objeto OdbcConnection abierto, llamando al método Close o Dispose, antes de que el objeto OdbcConnection salga del ámbito, o bien, colocando la conexión en una instrucción Using. Si no se procede de este modo, se deja la liberación de estos recursos nativos a la recolección de elementos no utilizados. Ésta quizás no los libere inmediatamente. Lo que, a su vez, puede llegar a provocar que el controlador subyacente se quede sin recursos o que alcance un límite máximo. Esto ha generado errores intermitentes. Por ejemplo, podrían detectarse errores relacionados con Maximum Connections mientras un gran número de conexiones está esperando a que el recolector de elementos no utilizados las elimine. El cierre explícito de las conexiones permite utilizar más eficazmente los recursos nativos, amplía la escalabilidad y mejora el rendimiento global de la aplicación.
Nota |
|---|
| Para implementar aplicaciones de alto rendimiento, es necesario utilizar frecuentemente la agrupación de conexiones. Sin embargo, si se utiliza el proveedor de datos de .NET Framework para ODBC, no es necesario habilitar la agrupación de conexiones porque el proveedor se encarga de ello automáticamente. |
Si uno de los métodos Execute de la clase OdbcCommand produce una excepción OdbcException muy grave, (por ejemplo un nivel de gravedad de SQL Server de 20 o más), OdbcConnection puede cerrarse. Sin embargo, el usuario puede volver a abrir la conexión y continuar.
Una aplicación que crea una instancia del objeto OdbcConnection puede requerir que todos los llamadores directos e indirectos tengan los permisos adecuados en el código mediante el establecimiento de demandas de seguridad declarativas o imperativas. OdbcConnection crea demandas de seguridad utilizando el objeto OdbcPermission. Los usuarios pueden comprobar que el código tiene los permisos adecuados mediante el objeto OdbcPermissionAttribute. Los usuarios y administradores pueden utilizar también la herramienta de la directiva de seguridad de acceso a código (Caspol.exe) para modificar la directiva de seguridad en los niveles de equipo, usuario y empresa. Para obtener más información, vea Seguridad de acceso a código y ADO.NET.
Para obtener más información sobre el tratamiento de mensajes informativos y de advertencia del origen de datos, vea Trabajar con eventos de conexión.
En el siguiente ejemplo se crean OdbcCommand y OdbcConnection. Se abre el objeto OdbcConnection y se establece como propiedad Connection. A continuación, en el ejemplo se llama a ExecuteNonQuery y se cierra la conexión. Para ello, se pasan una cadena de conexión y una cadena de consulta que es una instrucción INSERT de SQL a ExecuteNonQuery.
Private Sub InsertRow(ByVal connectionString As String)
Dim queryString As String = _
"INSERT INTO Customers (CustomerID, CompanyName) Values('NWIND', 'Northwind Traders')"
Dim command As New OdbcCommand(queryString)
Using connection As New OdbcConnection(connectionString)
command.Connection = connection
connection.Open()
command.ExecuteNonQuery()
' The connection is automatically closed at
' the end of the Using block.
End Using
End Sub
static private void InsertRow(string connectionString)
{
string queryString =
"INSERT INTO Customers (CustomerID, CompanyName) Values('NWIND', 'Northwind Traders')";
OdbcCommand command = new OdbcCommand(queryString);
using (OdbcConnection connection = new OdbcConnection(connectionString))
{
command.Connection = connection;
connection.Open();
command.ExecuteNonQuery();
// The connection is automatically closed at
// the end of the Using block.
}
}
System.Object
System.MarshalByRefObject
System.ComponentModel.Component
System.Data.Common.DbConnection
System.Data.Odbc.OdbcConnection
Seguridad para subprocesos
Los miembros estáticos públicos (Shared en Visual Basic) de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.
Windows 98, Windows 2000 SP4, Windows Millennium, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter Edition
.NET Framework no admite todas las versiones de cada plataforma. Para obtener una lista de las versiones admitidas, vea Requisitos del sistema.
.NET Framework
Compatible con: 2.0, 1.1