|
|
MODULO IV: Conectarse a
un SQL Server
TEMA 1: Comenzando con ADO - ActiveX Data Objects
Definición
ADO en ActiveX Data Objets es un modelo de objetos de acceso a datos que se apoya sobre OLEDB. Permite dirigir los datos que vienen de bases de datos relacionales (SQL Server, Oracle…), o de otras fuentes de datos no relacionales como ficheros de texto, fuentes de datos que no son de Microsoft, etc. Es un medio para acceder uniformemente a todos los tipos de datos. En cierta manera podemos decir que ODBC permite acceder a bases de datos relacionales, mientras que OLEDB permite el acceso a todos los tipos de datos, sean relacionales o no.
Este modelo de objetos se ha introducido como modelo de acceso de datos para IIS. Sus principales características son las siguientes:
Mínimo tráfico en la red Thread Safe (soportando accesos concurrentes o multithread) Número mínimo de capas entre las aplicaciones y los datos. Facilidad de utilización: modelo de objetos automatizado Tiene en cuenta los conocimientos adquiridos por los desarrolladores sobre la otras tecnologías como DAO o RDO
Arquitectura tecnológica

OLEDB es una tecnología que tiene como objetivo resolver
ciertas restricciones de ODBC. Esta tecnología autoriza el acceso a todo tipo
de datos, permitiendo administrar el aspecto de tener distribuidas las fuentes
de datos, y tiene en cuenta las restricciones de la web. Esta tecnología tiene
como objetivo reemplazar a la tecnología ODBC. ADO es el modelo de objetos que
permite simplificar el acceso a esta tecnología.
Un proveedor OLEDB implementa las interfaces OLEDB. Permite a un usuario OLEDB
alcanzar todo tipo de fuentes de datos de una manera uniforme a través de este
juego de interfaces documentado. En cierto sentido, un proveedor OLEDB es
similar a un driver ODBC que proporciona un mecanismo uniforme de acceso a los
datos relacionales. Los proveedores OLEDB no sólo proporcionan un mecanismo
uniforme de acceso a los datos relacionales, si no que también a datos no
relacionales. Además, los proveedores OLEDB se construyen sobre la base del
modelo COM (Component Objet Model) mientras que los drivers ODBC están basados
en una especificación de APIs de C.
El modelo de objetos ADO
El esquema siguiente muestra los objetos y las relaciones existentes entre los objetos y el modelo.

Objetos y Colecciones del modelo de objetos ADO
Los objetos Connection, Recordset y Command son los objetos más significativos de este modelo. Clásicamente, una aplicación las utiliza como:
|
Objeto o Colección |
Utilización |
|
Objeto Connection |
Permite establecer las conexiones entre el cliente y el origen de datos |
|
Objeto Command |
Permite realizar los comandos, como las consultas SQL o las actualizaciones de una base de datos. |
|
Objeto Recordset |
Permite ver y manipular los resultados de una consutla |
|
Colección Parameters |
Es utilizada cuando la consulta del objeto Command necesita los parámetros. |
|
Colección Errors |
La colección Errors y el objeto Error se acceden a través del objeto Connection, a no ser que se produzca un error de proveedor . El objeto Error es diferente del objeto Err de VB, en la medida en que no contiene los errores generados y definidos por el proveedor, por lo tanto, permite obtener información precisa sobre la causa del error. |
|
Colección Fields |
La colección Fields y el objeto Field se utilizan a través del objeto Recordset, una vez que éste contiene los datos. |
Descripción de los objetos y colecciones
La colección Properties proporciona la información sobre las características de los diferentes objetos Connection, Command, Recordset y Field. Cada objeto de Property es accesible a través de la colección Properties de cada uno de estos objetos.

Colección Properties
Aunque ADO es un modelo del tipo jerárquico, los objetos de ADO, excepto Error, Field y Property pueden crearse de forma autónoma, es decir, sin hacer referencia al objeto relacionado. Esto es diferente de los objetos DAO y RDO, que requieren en la mayoría de los casos la creación del objeto Parent (por ejemplo, un objeto DAO.Connection necesita un objeto DAO.Workspace para poder crearse).
ADO es un modelo de objetos que permite una gran flexibilidad al programador. Por consiguiente, hay distintas posibilidades para lograr la misma tarea. Por ejemplo, para ejecutar una consulta, es posible usar el método Execute del objeto Command o bien el del objeto Connection.
En resumen, este es un diagrama que muestra las relaciones entre los diferentes objetos que constituyen ADO:

Ejemplos de ADO
Abrir y cerrar una conexión con una base de datos SQL Server usando el proveedor por defecto que es el proveedor de OLEDB para ODBC
|
Abrir y cerrar una conexión con una base de datos SQL Server usando el proveedor OLEDB para SQL Server que es el proveedor recomendado
|
Abrir y cerrar un Recordset
|
Usar el método Execute del objeto Command para ejecutar una consulta de tipo texto
|
Usar el método Execute del objeto Command para ejecutar un procedimiento de almacenado
Sub ParameterExample()
Dim cmd As New ADODB.Command
Dim rs As New ADODB.Recordset
Dim prm As ADODB.Parameter
' Establecer el comando conexión usando una cadena de conexión.
cmd.ActiveConnection = "DSN=pubs;uid=sa"
' Establecer el comando texto, y especificar que es
' una sentencia SQL.
cmd.CommandText = "byroyalty"
cmd.CommandType = adCmdStoredProc
' Establecer un nuevo parámetro para el procedimiento guardado.
Set prm = cmd.CreateParameter("Royalty", adInteger, adParamInput, , 50)
cmd.Parameters.Append prm
' Crear un recordset.
Set rs = cmd.Execute
' Bucle a través del recordset e impresión del primer campo.
Do While Not rs.EOF Debug.Print rs(0)
rs.MoveNext
Loop
' Cerrar el recordset.
rs.Close
End Sub
|
Almacenar los resultados de una consulta Access en un fichero Excel
|
Enumerar los campos (nombre, tipo y valor) de un recordset
|
Mostrar los valores de ciertas propiedades de una conexión (el curso de la colección de Properties)
|
Las cadenas de conexión
Si necesita escribir una cadena de conexión, existe una manera de generarla con el asistente de creación de una conexión de datos.
Se puede usar esta herramienta de creación de conexiones de datos en VB:
