4.
DAO es la interfaz de programación disponible para
comunicarse con JET. DAO se utiliza en contextos donde
el motor reside en forma local y cuando se basan en
ISAM.
DAO puede abrir datos remotos ODBC pasando a través
de JET, aunque con grandes limitaciones de performance.
Estas limitaciones se deben fundamentalmente a que JET
es ineficiente en la negociación de conexiones y a que no
realiza caché de los datos ODBC.
Cuando solamente se va a acceder a datos SQL, RDO es
una mejor alternativa.
Como dato importante, DAO está siendo discontinuado
por Microsoft.
DAO (Direct Access
Objects)
5.
RDO es una capa que abstrae los detalles de la ODBC API,
utilizada únicamente en aplicaciones de 32-bit.
RDO es una alternativa eficiente para trabajar sobre ODBC (es
decir, sobre datos remotos), y con varias ventajas funcionales
frente a DAO: ejecución de stored procedures del servidor de
base de datos, ejecución asincrónica de consultas y
procesamiento de múltiples tipos de cursores.
La principal ventaja de RDO es que fue diseñado para el uso
eficiente de las funcionalidades de ODBC.
Como principales desventajas frente a DAO, RDO sólo dispone
de conexión a datos ODBC a través de drivers de 32-bit y no
está disponible en el Visual Basic for Applications disponible en
Office 97. Esto último es una limitación fuerte para los
desarrolladores de aplicaciones Office.
RDO (Remote Data
Objects)
6.
ADO es la interfaz a OLE DB y debe verse como un
modelo de programación, más que como una
implementación específica. La aparición de ADO surge de
la necesidad de acceder a datos en otros formatos (no
necesariamente datos en bases de datos) en forma remota
y con cierto énfasis en el entorno de Intranet/Internet.
Esto último se logra a través de una interfaz al modelo de
objetos distribuidos (DCOM, Distributed Common Object
Model, una extensión de OLE a ambiente distribuido).
Si bien ADO aún no es una tecnología estable, Microsoft
la considera como "su" tecnología de acceso a datos.
ADO (ActiveX Data
Objects)
7. 'Creacion del espacio de trabajo de JET
Dim ws as Workspace
Set ws = CreateWorkspace("", "loginid", "passwd", dbUseJet)
'Conexion a una base de datos JET
Dim db as Database
Set db = ws.OpenDatabase("C:datanorthwind.mdb")
'Abrir un cursor
Dim rs as RecordSet
Set rs = db.OpenRecordset("Empleados", dbOpenDynaset, dbReadonly)
'Procesamiento
…
'Cierre y desconexion
rs.Close
db.Close
ws.Close
Ejemplo 1. DAO
8. 'Creacion del espacio de trabajo
Dim ws as Workspace
Set ws = CreateWorkspace("", "loginid", "passwd", dbUseODBC)
'Conexion a una base de datos ODBC
Dim cn as Connection
Set cn = ws.OpenConnection("",,,"ODBC; DATABASE=pubs; UID=sa; PWD=;
DSN=pubsdata")
'Abrir un cursor
Dim rs as RecordSet
Set rs = db.OpenRecordset("Empleados", dbOpenDynamic)
'Procesamiento
…
'Cierre y desconexion
rs.Close
db.Close
ws.Close
Ejemplo 2. DAO +
ODBCDirect
9.
'Conexion
Set cn = New rdoConnection
With cn
.Connect = "DSN=pubsdata; UID=sa; PWD="
.EstablishConnection
End With
'Abrir un cursor
Dim rs as rdoresultset
Set rs = cn.OpenResultSet("Empleados", rdOpenKeyset,
rdConcurReadOnly)
Ejemplo 3. RDO
10.
'Abrir un cursor
Dim rs As New ADODB.Recordset
Rs.Open "Empleados; DSN=pubsdata; UID=sa; PWD="
'Procesamiento del cursor
Do Until rs.EOF
Print rs!apellido
Rs.MoveNext
Loop
Es.Close
Ejemplo 4. ADO
12.
El ADO.NET es un conjunto de componentes del
software que pueden ser usados por los programadores
para acceder a datos y a servicios de datos.
Es parte de la biblioteca de clases base que están
incluidas en el Microsoft .NET Framework.
Es usado por los programadores para acceder y para
modificar los datos almacenados en un Sistema Gestor
de Bases de Datos Relacionales.
También es usado para acceder a datos en fuentes no
relacionales.
ADO.NET es a veces considerado como una evolución
de la tecnología ActiveX Data Objects (ADO), pero fue
cambiado tan extensivamente que puede ser concebido
como un producto enteramente nuevo.
ADO .NET
14.
Connection: Proporciona una conexión usada para
comunicarse con la fuente de datos. También actúa como
Abstract Factory para los objetos command.
Command: Usado para realizar alguna acción en la fuente de
datos, como lectura, actualización, o borrado de datos
relacionales.
Parameter: Describe un simple parámetro para un command. Un
ejemplo común es un parámetro para ser usado en un
procedimiento almacenado.
Data Adapter: "Puente" utilizado para transferir data entre una
fuente de datos y un objeto DataSet (ver abajo).
DataReader: Es una clase usada para procesar eficientemente
una lista grande de resultados, un registro a la vez.
Data provider
16.
Un objeto
DataSet
representa un
esquema (o una
base de datos
entera o un
subconjunto de
una). Puede
contener las
tablas y las
relaciones entre
esas tablas.
Data SetDataSet
DataTable
Nombre
Filas
ColumnasDataView
DataColumn
Nombre
Tipo
DataRow
DataRowView
DataRelation
Constraint
Un objeto DataSet representa un esquema (o una base de datos entera o un subconjunto de una). Puede contener las tablas y las relaciones entre esas tablas.
Un objeto DataTable representa una sola tabla en la base de datos. Tiene un nombre, filas, y columnas.
Un objeto DataView "se sienta sobre" un DataTable y ordena los datos (como una cláusula "order by" de SQL) y, si se activa un filtro, filtra los registros (como una cláusula "where" del SQL). Para facilitar estas operaciones se usa un índice en memoria. Todas las DataTables tienen un filtro por defecto, mientras que pueden ser definidos cualquier número de DataViews adicionales, reduciendo la interacción con la base de datos subyacente y mejorando así el desempeño.
Un DataColumn representa una columna de la tabla, incluyendo su nombre y tipo.
Un objeto DataRow representa una sola fila en la tabla, y permite leer y actualizar los valores en esa fila, así como la recuperación de cualquier fila que esté relacionada con ella a través de una relación de clave primaria - clave extranjera.
Un DataRowView representa una sola fila de un DataView, la diferencia entre un DataRow y el DataRowView es importante cuando se está interactuando sobre un resultset.
Un DataRelation es una relación entre las tablas, tales como una relación de clave primaria - clave ajena. Esto es útil para permitir la funcionalidad del DataRow de recuperar filas relacionadas.
Un Constraint describe una propiedad de la base de datos que se debe cumplir, como que los valores en una columna de clave primaria deben ser únicos. A medida que los datos son modificados cualquier violación que se presente causará excepciones.