OLE DB
Integrantes del V-"B" Ing.Sistemas y Telematica
- Rafael Tantalean William
- Chuquichua Izquierdo Leonel
- Torres LLanos Javier
1.-Contenido
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
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 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.
|
|
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 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.
|
|
Eventos
Nombre
|
Descripción
|
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.
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
Publicar un comentario