OLE DB


Integrantes del V-"B" Ing.Sistemas y Telematica
  • Rafael Tantalean William
  • Chuquichua Izquierdo Leonel
  • Torres LLanos Javier
1.-Contenido

1.1.-Definicion

OLE DB (algunas veces escrito como OLEDB u OLE-DB) es la sigla de Object Linking and Embedding for Databases ("Enlace e incrustación de objetos para bases de datos") y es una tecnología desarrollada por Microsoft usada para tener acceso a diferentes fuentes de información, o bases de datos, de manera uniforme.

1.2.-Arquitectura

OLE DB permite separar los datos de la aplicación que los requiere. Esto se hizo así ya que diferentes aplicaciones requieren acceso a diferentes tipos y almacenes de datos, y no necesariamente desean conocer cómo tener acceso a cierta funcionalidad con métodos de tecnologías específicas. OLE DB está conceptualmente dividido en consumidores y proveedores; el consumidor es la aplicación que requiere acceso a los datos y el proveedor es el componente de software que expone una interfaz OLE DB a través del uso del Component Object Model (COM).

1.3.-DataSet

El DataSet de ADO.NET es una representación de datos residente en memoria que proporciona un modelo de programación relacional coherente independientemente del origen de datos que contiene. Un DataSet representa un conjunto completo de datos, incluyendo las tablas que contienen, ordenan y restringen los datos, así como las relaciones entre las tablas.
Hay varias maneras de trabajar con un DataSet, que se pueden aplicar de forma independiente o conjuntamente. Puede realizar lo siguiente:
·       Crear mediante programación una DataTable, DataRelation y una Constraint en un DataSet y rellenar las tablas con datos.
·      Llenar el DataSet con tablas de datos de un origen de datos relacional existente mediante DataAdapter.
·   Cargar y hacer persistente el contenido de DataSet mediante XML. Para obtener más información, vea Using XML in a DataSet (Usar XML en un conjunto de datos).
También se puede transportar un DataSet fuertemente tipado mediante un servicio Web XML. El diseño del DataSet lo convierte en idóneo para el transporte de datos mediante servicios Web XML. Para obtener información general sobre servicios Web XML, vea Información general de servicios Web XML. Para obtener un ejemplo sobre cómo usar un objeto DataSet desde un servicio Web XML, vea Consuming a DataSet from an XML Web Service (Usar un conjunto de datos desde un servicio Web XML).

1.4.-Clases de OLE DB

Jerarquía de herencia
System.Object
  System.MarshalByRefObject
    System.ComponentModel.Component
      System.Data.Common.DbCommand
        System.Data.OleDb.OleDbCommand

Sintaxis

public sealed class OleDbCommand : DbCommand, ICloneable, IDbCommand,
               IDisposable

Constructores

Nombre
Descripción
Inicializa una nueva instancia de la clase OleDbCommand.
Inicializa una nueva instancia de la clase OleDbCommand con el texto de la consulta.
Inicializa una nueva instancia de la clase OleDbCommand con el texto de la consulta y una OleDbConnection.
Inicializa una nueva instancia de la clase OleDbCommand con el texto de la consulta, un objeto OleDbConnection y el objeto Transaction.

Propiedades

Nombre
Descripción
Obtiene o establece la instrucción SQL o procedimiento almacenado para ejecutar en el origen de datos.(Invalida DbCommand.CommandText).
Obtiene o establece el tiempo de espera antes de terminar el intento de ejecutar un comando y generar un error.(Invalida DbCommand.CommandTimeout).
Obtiene o establece un valor que indica cómo el CommandText se interpreta la propiedad.(Invalida DbCommand.CommandType).
Obtiene o establece la interfaz OleDbConnection que usa esta instancia de OleDbCommand.
Obtiene IContainer que contiene Component.(Heredado de Component).
Obtiene o establece un valor que indica si el objeto de comando debe estar visible en un control personalizado del Diseñador de Windows Forms.(Invalida DbCommand.DesignTimeVisible).
Obtiene la estructura OleDbParameterCollection.
Obtiene o establece la ISite de la Component.(Heredado de Component).
Obtiene o establece la transacción OleDbTransaction en la que se ejecuta OleDbCommand.
Obtiene o establece cómo se aplican los resultados del comando a la DataRow cuando se utiliza el Updatemétodo de la OleDbDataAdapter.(Invalida DbCommand.UpdatedRowSource).

Métodos

Nombre
Descripción
Intenta cancelar la ejecución de un OleDbCommand.(Invalida DbCommand.Cancel()).
Crea un nuevo objeto OleDbCommand que es una copia de la instancia actual.
Crea un objeto que contiene toda la información relevante necesaria para generar a un proxy que se utiliza para comunicarse con un objeto remoto.(Heredado de MarshalByRefObject).
Crea una nueva instancia de un OleDbParameter objeto.
Libera todos los recursos que usa Component.(Heredado de Component).
Determina si el objeto especificado es igual al objeto actual.(Heredado de Object).
Ejecuta una instrucción SQL en el Connection y devuelve el número de filas afectadas.(Invalida DbCommand.ExecuteNonQuery()).
Una versión asincrónica de ExecuteNonQuery, que ejecuta una instrucción SQL en un objeto de conexión.
Invoca ExecuteNonQueryAsync con CancellationToken.None.(Heredado de DbCommand).
Esta es la versión asincrónica de ExecuteNonQuery. Los proveedores deberían reemplazar con una implementación apropiada. Opcionalmente, se puede omitir el token de cancelación.
La implementación predeterminada invoca sincrónico ExecuteNonQuery método y devuelve una tarea finalizada, bloquear el subproceso que realiza la llamada. La implementación predeterminada devuelve una tarea cancelada si pasa un token de cancelación ya cancelados. Las excepciones producidas por ExecuteNonQuery se comunicarán a través de la propiedad de excepción de la tarea devuelta.
No se invocan otros métodos y propiedades de la DbCommand del objeto hasta que se complete la tarea devuelta.(Heredado de DbCommand).
Envía el CommandText a la Connection y genera un OleDbDataReader.
Envía el CommandText a la Connection, y genera un OleDbDataReader mediante uno de los CommandBehavior valores.
Una versión asincrónica de ExecuteReader, que se ejecuta el CommandText contra los Connection y devuelve un DbDataReader.
Invoca ExecuteDbDataReaderAsync con CancellationToken.None.(Heredado de DbCommand).
Una versión asincrónica de ExecuteReader, que se ejecuta el CommandText contra los Connection y devuelve un DbDataReader. Este método propaga una notificación de que las operaciones deberían cancelarse.
Invoca ExecuteDbDataReaderAsync.(Heredado de DbCommand).
Una versión asincrónica de ExecuteReader, que se ejecuta el CommandText contra los Connection y devuelve un DbDataReader.
Invoca ExecuteDbDataReaderAsync.(Heredado de DbCommand).
Invoca ExecuteDbDataReaderAsync.(Heredado de DbCommand).
Ejecuta la consulta y devuelve la primera columna de la primera fila del conjunto de resultados devuelto por la consulta. Las demás columnas o filas no se tienen en cuenta.(Invalida DbCommand.ExecuteScalar()).
Una versión asincrónica de ExecuteScalar, que ejecuta la consulta y devuelve la primera columna de la primera fila del conjunto de resultados devuelto por la consulta. Se omiten todas las demás columnas y filas.
Invoca ExecuteScalarAsync con CancellationToken.None.(Heredado de DbCommand).
Esta es la versión asincrónica de ExecuteScalar. Los proveedores deberían reemplazar con una implementación apropiada. Opcionalmente, se puede omitir el token de cancelación.
La implementación predeterminada invoca sincrónico ExecuteScalar método y devuelve una tarea finalizada, bloquear el subproceso que realiza la llamada. La implementación predeterminada devuelve una tarea cancelada si pasa un token de cancelación ya cancelados. Las excepciones producidas por ExecuteScalar se comunicará a través de la propiedad de excepción de la tarea devuelta.
No se invocan otros métodos y propiedades de la DbCommand del objeto hasta que se complete la tarea devuelta.(Heredado de DbCommand).
Sirve como la función hash predeterminada.(Heredado de Object).
Recupera el objeto de servicio de duración actual que controla la directiva de duración de esta instancia.(Heredado de MarshalByRefObject).
Obtiene el Type de la instancia actual.(Heredado de Object).
Obtiene un objeto de servicio de duración para controlar la directiva de duración de esta instancia.(Heredado de MarshalByRefObject).
Crea una versión preparada (o compilada) del comando en el origen de datos.(Invalida DbCommand.Prepare()).
Restablece el CommandTimeout propiedad en el valor predeterminado.
Devuelve un String que contiene el nombre de la Component, si existe. Este método no se debe invalidar.(Heredado de Component).

Eventos

Nombre
Descripción
Se produce cuando el componente se elimina mediante una llamada a la Dispose (método).(Heredado de Component).

Implementaciones de interfaz explícitas

Nombre
Descripción
Crea una nueva instancia de un objeto IDbDataParameter.(Heredado de DbCommand).
Para una descripción de este miembro, vea IDbCommand.ExecuteReader.
Ejecuta el CommandText contra el Connection, y genera un IDataReader mediante uno de los CommandBehavior valores.
Para una descripción de este miembro, vea ICloneable.Clone.
Obtiene o establece la interfaz IDbConnection que usa esta instancia de IDbCommand.(Heredado de DbCommand).
Obtiene la estructura IDataParameterCollection.(Heredado de DbCommand).
Obtiene o establece DbTransaction dentro del cual se ejecuta este objeto DbCommand.(Heredado de DbCommand).

Comentarios

Cuando una instancia de OleDbCommand se crea la lectura y escritura propiedades se establecen en sus valores iniciales. Para obtener una lista de estos valores, consulte el OleDbCommand constructor.
OleDbCommand Proporciona los siguientes métodos que ejecutan comandos en un origen de datos:

Elemento
Descripción
Ejecuta comandos que devuelven filas. ExecuteReader no puede tener el efecto deseado si se utiliza para ejecutar comandos como instrucciones SET de SQL.
Ejecuta comandos como instrucciones SQL INSERT, DELETE, UPDATE y SET.
Recupera un único valor, por ejemplo, un valor agregado de una base de datos.

Puede restablecer el CommandText propiedad y volver a utilizar el OleDbCommand objeto. Sin embargo, debe cerrar la OleDbDataReader antes de poder ejecutar un comando nuevo o anterior.
Si un grave OleDbException (por ejemplo, un SQL Server nivel de gravedad de 20 o superior) generado por el método que ejecuta un OleDbCommand, OleDbConnection, se puede cerrar la conexión. Sin embargo, el usuario puede volver a abrir la conexión y continuar.

1.5.-Ejemplo
En el ejemplo siguiente se usa el OleDbCommand, junto OleDbDataAdapter y OleDbConnection, para seleccionar filas de una base de datos de Access. El relleno DataSet a continuación, se devuelve. En el ejemplo se pasa un inicializar DataSet, una cadena de conexión, una cadena de consulta que es una instrucción SELECT de SQL y una cadena que es el nombre de la tabla de base de datos de origen.

public void ReadMyData(string connectionString)
{
string queryString = "SELECT OrderID, CustomerID FROM Orders";
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
OleDbCommand command = new OleDbCommand(queryString, connection);
connection.Open();
OleDbDataReader reader = command.ExecuteReader();

while (reader.Read())
{
Console.WriteLine(reader.GetInt32(0) + ", " + reader.GetString(1));
}
// always call Close when done reading.
reader.Close();
}
}

2. Resumen

OLE DB

Definicion OLE DB es la sigla de Object Linking and Embedding for Databases y es una tecnología desarrollada por Microsoft usada para tener acceso a diferentes fuentes de información, o bases de datos, de manera uniforme. Arquitectura OLE DB permite separar los datos de la aplicación que los requiere. Esto se hizo así ya que diferentes aplicaciones requieren acceso a diferentes tipos y almacenes de datos, y no necesariamente desean conocer cómo tener acceso a cierta funcionalidad con métodos de tecnologías específicas.

DataSet

El DataSet de ADO.NET es una representación de datos residente en memoria que proporciona un modelo de programación relacional coherente independientemente del origen de datos que contiene. Hay varias maneras de trabajar con un DataSet, que se pueden aplicar de forma independiente o conjuntamente. Crear mediante programación una DataTable, DataRelation y una Constraint en un DataSet y rellenar las tablas con datos. Cargar y hacer persistente el contenido de DataSet mediante XML.

Para obtener más información, vea Using XML in a DataSet . También se puede transportar un DataSet fuertemente tipado mediante un servicio Web XML. Para obtener información general sobre servicios Web XML, vea Información general de servicios Web XML. Para obtener un ejemplo sobre cómo usar un objeto DataSet desde un servicio Web XML, vea Consuming a DataSet from an XML Web Service .

[...]

Obtiene o establece la instrucción SQL o procedimiento almacenado para ejecutar en el origen de datos... .

CommandTimeout

Obtiene o establece el tiempo de espera antes de terminar el intento de ejecutar un comando y generar un error.

CreateObjRef

Crea un objeto que contiene toda la información relevante necesaria para generar a un proxy que se utiliza para comunicarse con un objeto remoto.

Equals

Los proveedores deberían reemplazar con una implementación apropiada.Opcionalmente, se puede omitir el token de cancelación.

[...]

Ejecuta la consulta y devuelve la primera columna de la primera fila del conjunto de resultados devuelto por la consulta. Una versión asincrónica de ExecuteScalar, que ejecuta la consulta y devuelve la primera columna de la primera fila del conjunto de resultados devuelto por la consulta. [...]

Obtiene un objeto de servicio de duración para controlar la directiva de duración de esta instancia.

Prepare

Crea una versión preparada del comando en el origen de datos.

ToString

Devuelve un String que contiene el nombre de la Component, si existe.

Comentarios

Para obtener una lista de estos valores, consulte el OleDbCommand constructor.

Descripción ExecuteReader

ExecuteReader no puede tener el efecto deseado si se utiliza para ejecutar comandos como instrucciones SET de SQL.

ExecuteScalar

Puede restablecer el CommandText propiedad y volver a utilizar el OleDbCommand objeto. Sin embargo, debe cerrar la OleDbDataReader antes de poder ejecutar un comando nuevo o anterior. Si un grave OleDbException generado por el método que ejecuta un OleDbCommand, OleDbConnection, se puede cerrar la conexión. Sin embargo, el usuario puede volver a abrir la conexión y continuar.

Ejemplos

En el ejemplo siguiente se usa el OleDbCommand, junto OleDbDataAdapter y OleDbConnection, para seleccionar filas de una base de datos de Access. En el ejemplo se pasa un inicializar DataSet, una cadena de conexión, una cadena de consulta que es una instrucción SELECT de SQL y una cadena que es el nombre de la tabla de base de datos de origen.


3. Summary

OLE DB

Definition OLE DB is the abbreviation of Object Linking and Embedding for Databases and is a technology developed by Microsoft used to access different sources of information, or databases, in a uniform manner. OLE DB architecture allows you to separate the data of the application that requires them. This was done because different applications require access to different types and data stores, and do not necessarily want to know how to access certain functionality with specific technology methods.

DataSet

The ADO.NET DataSet is a memory resident data representation that provides a consistent relational programming model regardless of the data source it contains. There are several ways to work with a DataSet, which can be applied independently or together. Programmatically create a DataTable, DataRelation and a Constraint in a DataSet and fill in the tables with data. Load and persist the DataSet content through XML.

For more information, see Using XML in a DataSet. You can also transport a strongly typed DataSet through an XML Web service. For general information about XML Web services, see Overview of XML Web services. For an example of how to use a DataSet object from an XML Web service, see Consuming to DataSet from an XML Web Service.

[...]

Gets or sets the SQL statement or stored procedure to execute on the data source ...

CommandTimeout

Gets or sets the timeout before finishing the attempt to execute a command and generate an error.

CreateObjRef

Create an object that contains all the relevant information needed to generate a proxy that is used to communicate with a remote object.

Equals

Providers should replace with an appropriate implementation.Optionally, the cancellation token can be omitted.

[...]

Execute the query and return the first column of the first row of the result set returned by the query. An asynchronous version of ExecuteScalar, which executes the query and returns the first column of the first row of the result set returned by the query. [...]

You get a duration service object to control the lifetime policy of this instance.

Prepare

Create a prepared version of the command in the data source.

ToString

Returns a String that contains the name of the Component, if it exists.

Comments

For a list of these values, see the constructor OleDbCommand.

Description ExecuteReader

ExecuteReader can not have the desired effect if it is used to execute commands such as SQL SET statements.

ExecuteScalar

You can reset the CommandText property and reuse the OleDbCommand object. However, you must close the OleDbDataReader before you can execute a new or previous command. If a serious OleDbException generated by the method that executes an OleDbCommand, OleDbConnection, the connection can be closed. However, the user can reopen the connection and continue.

Examples

The following example uses the OleDbCommand, together with OleDbDataAdapter and OleDbConnection, to select rows from an Access database. In the example, you pass an initialize DataSet, a connection string, a query string that is a SQL SELECT statement, and a string that is the name of the source database table.

4. Recomendaciones

En el caso aplicaciones nuevas, si está utilizando un lenguaje de programación administrado, como Microsoft Visual C# o Visual Basic, y necesita obtener acceso a las nuevas características introducidas en SQL Server, debería utilizar el proveedor de datos de .NET Framework para SQL Server, que forma parte de .NET Framework.
Si está desarrollando una aplicación basada en COM y necesita obtener acceso a las nuevas características introducidas en SQL Server, debe usar el controlador OLE DB para SQL Server. Si no necesita obtener acceso a las nuevas características de SQL Server, puede seguir utilizando Windows Data Access Components (WDAC).
Para las aplicaciones existentes de OLE DB, el problema principal es si necesita tener acceso a las nuevas características de SQL Server. Si su aplicación es antigua y no necesita las nuevas características de SQL Server, puede seguir usando WDAC. Sin embargo, si es necesario tener acceso a esas características nuevas, como el tipo de datos xml, debe usar el controlador OLE DB para SQL Server.

5. Conclusiones

Controlador de OLE DB para SQL Server es una tecnología que puede utilizar para tener acceso a datos en un SQL Server base de datos. Para obtener una explicación de las tecnologías de acceso a datos diferentes, consulte mapa de carreteras de tecnologías de acceso de datos.

6. Apreciación del Equipo

Proporciona un acceso a los datos coherente y de gran rendimiento, y permite abordar una gran variedad de necesidades de desarrollo.

Es un estándar abierto para el acceso a todo tipo de datos, tanto relacionales como no relacionales.

Define interfaces nativas diseñadas para ser lo suficientemente extensas y extensibles como para exponer todo el comportamiento.

Controlador OLE DB para SQL Server  admite el aislamiento de transacción confirmada mediante las versiones de fila, pero sólo controlador OLE DB para el aislamiento de transacción de instantánea de SQL Server admite de lectura. (En términos de programación, el aislamiento de transacción de instantánea con versiones de fila es igual que la transacción de lectura confirmada).


7. Glosario de Términos


8. Bibliografía o Linkografía 


Comentarios

Entradas populares de este blog

Objeto DataTable y DataSet