Tema: FAQ's de VB6
Ver Mensaje Individual
  #93 (permalink)  
Antiguo 28/08/2005, 19:24
Avatar de aldo1982
aldo1982
 
Fecha de Ingreso: noviembre-2004
Ubicación: Santa Fe (Argentina) Colon F.C
Mensajes: 1.362
Antigüedad: 19 años, 4 meses
Puntos: 6
diferencia entre ADO y DAO

ke diferencia hay entre ADO y DAO ??

las diferencias son las siguientes:
================================================== ==
ADO

ADO(Data Access Object) Objeto de acceso a datos.

(ActiveX Data Objetc) Interface de acceso a datos usado para comunicar OLEDB data souces, como MS SQL Server. Es una Interface a nivel aplicación que usa OLEDB, una libreria de Objetos COM que permite el acceso a diversas fuentes de datos.

ADO a Alto Nivel
ADO No Siempre es flexible, En especial cuando queremos tareas en un solo paso. No obstante, Un Componente de Capa Media puede hacer a ADO realmente simple. Ideas que evolucionan en ADO.NET

--------------------------------------------------------------------------------



El acceso a datos a alto nivel fue una innovación de Visual Basic 3, y quizás fue eso lo que desde 1993 hizo popular este lenguaje: sencillez y eficacia. Todo empezó con los Objetos de Acceso a Datos, DAO, que son unos componentes de software diseñados y optimizados para bases de datos de Microsoft Access. Fue tan buena idea, que DAO pronto fue capacitado para poder desarrollar en entornos Cliente-Servidor (ODBCDirect), aunque no con el desempeño deseado, pero era algo. De aquí que se escribiera algo especializado para entornos Cliente-Servidor, que se denomino RDO, el cual tubo una corta vida debido a los avances tecnológicos detrás del software. Entonces la tecnología de componentes de Microsoft, basada en el modelo COM, necesitaba algo totalmente afín a su naturaleza para acceder a datos, entonces se escribió lo que hoy conocemos como ADO. La universalidad de ADO le da sus meritos. No obstante, ADO no es siempre flexible, en especial cuando queremos tareas en un solo paso. No obstante, un componente de capa media puede hacer a ADO realmente simple. Ideas que evolucionan en ADO.NET.

Clases y Más Clases
Hace ya varios años que Visual Basic dejo de ser un lenguaje simple, y un desarrollador Visual Basic que no sepa escribir clases vera muy sub-utilizada su capacidad. Los componentes de capa media se escriben en clases, y solo en clases. Los objetos que se escriben con Visual Basic son magia, puedes hacer tareas realmente complejas tan solo con hacer referencia a una DLL y usarla.

Simplificando ADO
Yo he simplificado mucho mi escritura de software de acceso a datos al hacer funciones reutilizables que encapsulan operaciones de ADO. Naturalmente estas funciones van a parar en un componente ActiveX que bautice ADOFunctions. Me explico, si escribimos una función como la siguiente:

Public Function StaticRecordset( _
QueryName As String, _
ParamArray Param() As Variant _
) As ADODB.Recordset

Dim rs As ADODB.Recordset
Dim cmd As ADODB.Command
Dim pmt As ADODB.Parameter
Dim i As Long

On Error GoTo ErrHandler

Set cmd = New ADODB.Command
Set rs = New ADODB.Recordset

With cmd
.ActiveConnection = m_ConnectionString
.CommandType = adCmdTable
.CommandText = "[" & QueryName & "]"
For Each pmt In .Parameters
pmt.Value = Param(i)
i = i + 1
Next
End With

With rs
.CursorLocation = adUseClient
.Open cmd, , adOpenStatic
Set cmd.ActiveConnection = Nothing
Set cmd = Nothing
Set .ActiveConnection = Nothing
End With

Set StaticRecordset = rs
Exit Function

ErrHandler:
Set StaticRecordset = Nothing
Call ErrHandlerAction(Err)
End Function




-------------------------------------------------------------
DAO
Definición de tabla: definición
Un objeto DAO de definición de tabla, representado en MFC por un objeto CDaoTableDef, es un objeto que define la estructura de una tabla base o una tabla asociada.

Una tabla base es una tabla de una base de datos de Microsoft Jet (.MDB). Se puede manipular la estructura de una tabla base mediante objetos DAO o instrucciones SQL del Lenguaje de definición de datos (DDL), y se pueden utilizar conjuntos de registros y consultas de acción para modificar los datos de una tabla base.

Una tabla asociada es una tabla de otra base de datos vinculada a una base de datos de Microsoft Jet (.MDB). Los datos de las tablas asociadas permanecen en la base de datos externa, donde pueden ser manipulados por otras aplicaciones. Con las tablas asociadas no se puede usar el conjunto de registros de tipo tabla ni modificar el esquema de las mismas, pero se pueden utilizar conjuntos de registros de tipo dinámico e instantánea.

Usos de la definición de tabla
El principal uso de los objetos de definición de tabla es la manipulación de la estructura de una tabla. Se puede:

Basar un conjunto de registros en una definición de tabla. El conjunto de registros es un conjunto de registros de tipo tabla. Vea CDaoRecordset::Open en la Referencia de MFC.
Examinar la estructura de tablas base locales, tablas asociadas y tablas externas. En la estructura de una tabla se incluyen los campos y los índices.
Agregar o eliminar campos e índices en tablas base locales y tablas externas que se abren directamente en vez de asociarse.
Establecer la información de conexión y el nombre de una tabla asociada y actualizar el vínculo a una tabla asociada.
Determinar si los datos de los campos de una tabla son editables.
Obtener o establecer condiciones de validación de una tabla.
Se pueden utilizar tablas como base para abrir conjuntos de registros de dos formas. Se puede:

Abrir un conjunto de registros basado en un puntero CDaoTableDef.
Crear un conjunto de registros de tipo tabla basado en la tabla.
Para obtener una explicación completa de lo que se puede hacer con las definiciones de tabla, vea el tema "TableDef (Objeto)" en la Ayuda de DAO.

Colecciones DAO y de definiciones de tabla
Cada objeto DAO de base de datos mantiene una colección TableDefs, a saber, una colección de todas las definiciones de tabla guardadas en la base de datos. La colección contiene una definición de tabla por cada tabla de la base de datos. Cada objeto de definición de tabla mantiene dos colecciones propias:

Campos Todos los campos de la definición de tabla, uno por cada campo de la tabla subyacente.
Índices Todos los índices definidos en la tabla.
Los objetos MFC no almacenan una representación de una colección DAO. En su lugar, MFC obtiene acceso a la colección a través del objeto DAO subyacente. Para obtener más información, vea el artículo Colecciones DAO.

MFC tampoco proporciona una clase de C++ para representar cada objeto DAO. En particular, no hay objetos MFC de campo ni de índice. Se trabaja con campos e índices de una definición de tabla a través de funciones miembro de la clase CDaoTableDef.
-------------------------------------------
fuentes:
ADO:http://www.mvps.org/vexpert/articles/adoAltoNivel.htm
DAO: http://msdn.microsoft.com/library/sp...o_tabledef.asp
__________________
LA MUERTE ESTÁ TAN SEGURA DE VENCER QUE NOS DA TODA UNA VIDA DE VENTAJA