04-03-2009, 06:59 AM 
		
	
	
		Antes de proseguir, voy a pedir a los que no han leído los correos anteriores, que vean las páginas
http://rojointenso.net/mybb/?p=6376
 
datos03 que contiene las diferencias entre ADO y DAO, y
http://rojointenso.net/mybb/?p=4012
datos06.htm que trae ejemplos de cómo accesamos a los datos en DAO.
Lo que sigue va a suponer que ya lo leyeron. A grandes rasgos DAO era una forma de accesar datos que diseñó Microsoft, que evolucionó después en ADO.
Tipo de Acceso: [color=#FFFFCC]DAO
[color=#FFFFCC]Ventajas:
[color=#FFFFCC]Ventajas:
Técnicamente es posible hacer un programa DAO estructurado de tal manera que podamos hacerlo ADO sin esfuerzo. Lo veremos ya que programaremos en DAO, y finalmente haremos ajustes que realicen el cambio. Esto es característico de los buenos programadores. No Necesito decir nombres, pero todos conocemos a programadores que se tardan semanas, a veces meses y años, en cambiar sus sistemas en metodologías de acceso, simplemente porque no están bien estructurados. En otro correo hablábamos de los programas ABC, es decir, los procesos de altas, bajas y cambios de todos los módulos de un proceso determinado. En el correo 06, vimos que era posible accesar a los datos a través de un recordset, o conjunto de resultados, que se transformaban, ordenaban y modificaban en base a una sola cadena SQL. Aunque más adelante veremos con mas detalle SQL, vamos a ver muy rápidamente lo que es la sintaxis de la apertura de recordsets.
1. Debe usarse en DAO un openrecordset.
2. Toda consulta de registros empieza con un "select", seguido por el nombre del campo o campos a consultar, terminando con una orden from que va a decir de donde es la tabla a usar. El orden de los campos en la declaración, será el orden en los resultados. Puede sustiuirse el nombre de los campos por un asterisco, pero esto llama todos los campos, no solo los solicitados.
Una vez que sabemos que consultar, tenemos que saber como revisar si hay o no resultados a nuestra pregunta. ADO y DAO nos ofrecen dos métodos, uno usando la palabra clave nomatch que no entra en el espíritu de SQL, y la orden según SQL.
Vamos a suponer que pedimos los alumnos mayores a 18 años en una escuela primaria. Casi seguramente no hay resultados, no?
Un ejemplo de código sería:
[code]Dim db as DAO.database
Dim rs as DAO.Recordset
Set db= OpenDatabase("alumnos.mdb") ' esto abre la base de datos en Access
Set RS= db.openrecordset("Select * from ALUMNOS where EDAD <18 order by EDAD")  abre
With rs
	
	
	
	
	
http://rojointenso.net/mybb/?p=6376
datos03 que contiene las diferencias entre ADO y DAO, y
http://rojointenso.net/mybb/?p=4012
datos06.htm que trae ejemplos de cómo accesamos a los datos en DAO.
Lo que sigue va a suponer que ya lo leyeron. A grandes rasgos DAO era una forma de accesar datos que diseñó Microsoft, que evolucionó después en ADO.
Tipo de Acceso: [color=#FFFFCC]DAO
[color=#FFFFCC]Ventajas:
- Sistema de búsqueda muy robusto
 - Permite modificar tablas dinámicamente
 
- Lentitud relativa
 
[color=#FFFFCC]Ventajas:
- Rapidez
 - Muy portable
 
- Deben seleccionarse los drivers con cuidado
 - No permite modificar dinámicamente tablas SQL SERVER (con ADOX si es posible)
 - Sistema de búsqueda No SQL menos poderoso.
 - Mucha funcionalidad extra que no se necesita ( objetos stream y record )
 
Técnicamente es posible hacer un programa DAO estructurado de tal manera que podamos hacerlo ADO sin esfuerzo. Lo veremos ya que programaremos en DAO, y finalmente haremos ajustes que realicen el cambio. Esto es característico de los buenos programadores. No Necesito decir nombres, pero todos conocemos a programadores que se tardan semanas, a veces meses y años, en cambiar sus sistemas en metodologías de acceso, simplemente porque no están bien estructurados. En otro correo hablábamos de los programas ABC, es decir, los procesos de altas, bajas y cambios de todos los módulos de un proceso determinado. En el correo 06, vimos que era posible accesar a los datos a través de un recordset, o conjunto de resultados, que se transformaban, ordenaban y modificaban en base a una sola cadena SQL. Aunque más adelante veremos con mas detalle SQL, vamos a ver muy rápidamente lo que es la sintaxis de la apertura de recordsets.
1. Debe usarse en DAO un openrecordset.
2. Toda consulta de registros empieza con un "select", seguido por el nombre del campo o campos a consultar, terminando con una orden from que va a decir de donde es la tabla a usar. El orden de los campos en la declaración, será el orden en los resultados. Puede sustiuirse el nombre de los campos por un asterisco, pero esto llama todos los campos, no solo los solicitados.
- Select NOMBRE,DIRECCION from ALUMNOS
 - Select DIRECCION,EDAD from ALUMNOS
 
- Select NOMBRE,TELEFONO from ALUMNOS where TELEFONO=5678-1234
 - Select TELEFONO,EDAD from ALUMNOS where EDAD > 18
 
- Select NOMBRE,APELLIDO from ALUMNOS order by APELLIDO
 - Select * from ALUMNOS where EDAD <18 order by EDAD
 
Una vez que sabemos que consultar, tenemos que saber como revisar si hay o no resultados a nuestra pregunta. ADO y DAO nos ofrecen dos métodos, uno usando la palabra clave nomatch que no entra en el espíritu de SQL, y la orden según SQL.
Vamos a suponer que pedimos los alumnos mayores a 18 años en una escuela primaria. Casi seguramente no hay resultados, no?
Un ejemplo de código sería:
[code]Dim db as DAO.database
Dim rs as DAO.Recordset
Set db= OpenDatabase("alumnos.mdb") ' esto abre la base de datos en Access
Set RS= db.openrecordset("Select * from ALUMNOS where EDAD <18 order by EDAD")  abre
With rs

     