Mejor metodo para Crystal Report

Utilizo Bases de datos en Access pero no se Cual es el mejor método para usar el Crystal Report (y ademas el más rapido)
Solamente puedo utilizar estos métodos
Por medio de ODBC
con el CR1.SQLquery = " "
o por medio de DAO
Utilizando el CR1.SelectionFormula = " "
Se que es más rapido usando ODBC pero mi información que tengo es BASE2002 y BASE2003 y tengo una opción para cambio de bases de datos y utilizo los mismos reportes y es por eso que utilizo el Datafiles(0)
Cual es el mejor método ODBC o DAO y si es ADO como se usa o bien el método más rapido para acceso a bases de datos.
Gracias por tu respuesta
Estuardo Moreno
Guatemala

1 Respuesta

Respuesta
1
En cuanto al mejor método lamentablemente no existe una fórmula a aplicar sino que depende de la situación en particular. El ODBC tiene la gran ventaja de ser independiente del Backend (base de datos) aunque también por eso es un poquito más lento (ya que el ODBC hace proceso de traducción) el OLEDB, DAO y ADO son más rápidos, ya que son nativos de la base de datos, pero también hacen que los reportes sean dependientes de un nombre de servidor y/o una base en particular.
Yo en lo personal uso ODBC, ya que me permite que mis reportes sean transportables y poder utilizarlos en distintas plataformas.
DAO (Direct Access Object) se utiliza principalmente para base de datos microsoft Jet (Access 95/97/2000), ADO (Access Data Object) se utiliza principalmente para SQL.
Muchas veces se logra una mejor respuesta en los reportes al tener una consulta optimizada y/o un buen diseño en la base de datos.
Lo que me gusta de Crystal Report es la versatilidad y facilidad para crear los reportes y que además es sencillo de utilizar.
Julio
Tu respuesta es muy buena me has dado un nuevo concepto que no sabia y ese era el backend en el ODBC, ahora entiendo porque un reporte en ODBC es más rapido que en DAO.
Programo en Visual basic 6 con el Microsoft Yet y utilizo Crystal Reports con DAO, pero el problema con el DAO es que tiene que contar los más de 125,000 registros que tengo en mi tabla de access para tirar el reporte (Lo cual lo hace muy lento),
Este problema lo soluciono haciendo bases de datos por año.
Base2000
Base2001
Base2002.mdb
Pero la ultima base de datos esta muy cargada y al tirar el reporte es lento, Si utilizo ODBC sera más rapido, pero la diferencia es que en DAO puedo tirar reportes de Distintas Bases de datos (De cada Año, sin tener que cambiar el ODBC) Si uso ODBC el acceso a Access es lento pero los reportes son rápidos, si Utilizo Microsoft Yet el acceso a Access es rapido y tiro los Reportes en Crystal con DAO pero es muy lento.
Sabes la forma de Utilizar ADO/Crystal a modo de que en cualquier momento el usuario pueda cambiarse al Año pasado y Utilizar los mismos modelos de Reportes
Y Muchísimas Gracias por Tu respuesta
Una solución rápida para esa situación es crear otra tabla en access donde se ponen como vinculadas las tablas que nos interesan reportear de las bases de datos de los años.
Por ejemplo que tengo facturación... pues al vincular la primera tabla de la base de datos del primer año disponible me quedaría facturacion1, y la siguiente sería facturacion2... y así sucesivamente. En esa misma tabla se crea una consulta que una las dos tablas vinculadas (al final de cuentas deberían tener la misma estructura)
La consulta con sintaxis SQL debería quedar de la siguiente manera:
SELECT a.nombre, a.edad
FROM datos1 a Union
SELECT b.nombre, b.edad
FROM datos b
En este ejemplo estoy uniendo los datos de la tabla datos1 con la de datos, y muestra todos los registros en una sola tabla. Acá sería fácil hacer un reporte que muestre los registros en base a la consulta generada. Ventajas: puedo generar reportes que incluyan tanto meses de un año como del otro, situación que en este momento, según su diseño, no se podría efectuar. Si considera que Access se está quedando pequeño para la cantidad de información que está manejando.. pues de la familia de Microsoft le podría recomendar el MSDE (que es el mismo motor de SQL Server de Microsoft) y es gratuito para usuarios con licencia de Visual Basic. No tiene una interface gráfica para crear las tablas. (Está ya más orientado para arquitectura Cliente-Servidor)
Otra opción también es el MySQL, que es una base de datos de "Open Source" que es una de las más rápidas actualmente (según tengo entendido, pero no lo puedo confirmar, más rapido que SQL, y por supuesto.. más que Access), solo que no es Relational. (Es código abierto, o sea sin costo para el usuario). Y también, otra opción, es utilizar la base de datos de Linux PostgreSQL (solo corre en Linux) para una arquitectura cliente-servidor también.
Julius
Gracias Te lo agradezco un montón ya que no Sabia nada Acerca de la clausula Union de SQL ni tampoco acerca del msde ya Probé la union y me funciono ahora solo me queda probar bajar el msde a modo de optimizar mis tablas.
Te lo Agradezco un Montón!

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas