¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

¿Cómo usar ADO.NET con Crystal Reports 2008?

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 159 Vistas
0
Cargando...

Pensé que con CR 2008 sería posible usar ADO.NET (no el dataset, el proveedor de datos) pero no puedo encontrarlo en ninguna parte. ¿Quizás se necesita una DLL adicional para descargar?

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Hola,

Los controladores ADO.NET son archivos DLL. Debes crear la DLL que genere el conjunto de registros o usar una que alguien más haya creado.

ADO.NET (XML)

Esta opción admite la inserción de datos en tu informe desde un conjunto de datos ADO.NET; también admite extraer datos de una DLL que devuelve un conjunto de datos (normalmente creada por un desarrollador). Cuando se ha creado una DLL para extraer datos, los usuarios pueden crear informes a partir de los datos devueltos.

Aquí tienes la información del archivo de ayuda de Crystal Reports:

Nota: La ayuda en línea de Crystal Reports para Visual Studio .NET incluye información sobre la generación de objetos de conjunto de datos ADO.NET.

Ruta del archivo

Ingresa la ruta completa y el nombre de tu archivo XML, archivo de esquema XML o proveedor de .NET DataSet. También puedes utilizar el botón adyacente a este campo para buscar tu archivo o proveedor. Al buscar, elige el tipo de archivo apropiado de la lista "Archivos de tipo" en el cuadro de diálogo Abrir:

Archivos XML

Archivos de esquema XML

Proveedor de .NET DataSet

Usar Clases del Proyecto

Selecciona esta opción si deseas utilizar clases de un proyecto .NET existente.

Nombre de la Clase

Esta opción aparece después de seleccionar "Usar Clases del Proyecto". La lista se llena con las clases contenidas en el archivo que seleccionaste. Selecciona la clase cuyo DataSet deseas informar.

Usar DataSet de la Clase

Selecciona esta opción si deseas utilizar un DataSet devuelto por el archivo que seleccionaste.

Nombres de DataSet

Esta opción aparece después de seleccionar "Usar DataSet de la Clase". La lista se llena con los DataSets contenidos en el archivo que seleccionaste. Selecciona el DataSet sobre el que deseas informar.

Sí, Crystal puede hacerlo, pero el proveedor de datos no está escrito por CR sino por ti o un tercero. No tenemos crdb_tudatoproveedor.dll.

Creo que deberíamos volver a por qué no puedes seguir usando el controlador de Sybase. Y para obtener la consulta SQL que CR genera, haz clic en la opción del menú Database y luego en Mostrar consulta SQL, tendrás que hacer esto para cada informe.

Te sugiero que hables con un desarrollador de .NET para ver si esta es una opción para crear el DataProvider por ti o crear una aplicación que pueda utilizar las ensamblados CR .NET para tomar tus informes existentes y, mediante nuestras API, establecer la ubicación de los datos en tu nuevo proveedor.

Gracias

Don

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Lo hice. Creé un informe en blanco, seleccioné la opción de Crear Nueva Conexión ADO.NET, elegí la DLL del proveedor ADO.NET. Pero no funciona. Está buscando un proveedor de Data Set.

Estoy preguntando si es posible usar controladores ADO.NET para conectar a la base de datos de la misma manera que Crystal Reports puede usar controladores OLEDB u ODBC o controladores nativos.

ADO.NET no se limita solo a conjuntos de datos. Bases de datos como Microsoft SqlServer, Oracle, Sybase, DB2, MySQL SQLite, etc. tienen controladores ADO.NET que se pueden utilizar para conectar y ejecutar consultas SQL, leer datos, y más. Los conjuntos de datos son simplemente una colección de filas y tablas generalmente creadas utilizando un adaptador de datos que a su vez generalmente utiliza un objeto de comando ADO.NET.

Tengo cientos de informes (con subinformes) que se conectan a Sybase y Sql Server donde Crystal crea la consulta, la ejecuta, carga registros, para cada subinforme ejecuta una nueva consulta y finalmente genera los informes. Esto se hace utilizando el cliente nativo de Sybase.

Es imposible lograr lo mismo con un Data Set.

Si Crystal 2008 pudiera usar controladores ADO.NET, podría deshacerme de los clientes nativos y usar ADO.NET.

¿Quizás hay una cr_db...dll que pueda hacer eso?

Gracias,

Gianluca

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Ok, permíteme explicar... Y sí, me refería a .NET y no a .ENT, error tipográfico.

Crystal Reports utiliza un archivo llamado crdb_adoplus.dll como su controlador ADO.NET (XML). Este es nuestro controlador para conectarse a XML o si un desarrollador o un desarrollador de terceros crea un conector de base de datos en forma de dll, entonces CR puede usarlo. Dentro de este dll se establece una conexión a la base de datos, cómo se hace depende del desarrollador, ya sea utilizando un controlador con cable, que tiene un cliente incorporado como nuestros controladores DataDirect, u otro método. CR no escribe motores de cliente.

Puedes obtener nuestros controladores DD desde este [enlace](https://smpdl.sap-ag.de/~sapidp/012002523100008666562008E/cr_datadirect53_win32.zip)

El paquete de controladores DD tiene lo que se llama un controlador "con cable" para conectarse a Oracle y MS SQL Server, así como un controlador de Sybase, que no requieren que se instale un cliente de base de datos. Están basados en ODBC, por lo que estás limitado a lo que ODBC puede hacer.

Para usarlos, descarga e instala desde el enlace anterior y luego ve a ODBC Admin y crea un nuevo DSN del sistema y selecciona el controlador de protocolo con cable de Sybase de CR. Ahora, cuando establezcas la ubicación de la base de datos de tu informe, selecciona ODBC y este nuevo DSN y luego verifica la base de datos.

Si simplemente estás buscando una conexión a una fuente de datos sin el costo adicional de instalar un motor de cliente, esta es la opción a seguir. Aún no has dicho cuál es tu objetivo final, aparte de usar un "Proveedor de Datos" y usar ADO.NET, pero no es necesario usar ADO.NET para usar un controlador con cable.

Echa un vistazo a este enlace para ver qué opciones están disponibles en ADO.NET: http://en.wikipedia.org/wiki/ADO.NET

Así que espero que ahora esté claro, pero si no lo está, entonces creo que simplemente estamos malinterpretando la definición de ADO.NET y lo que CR ADO.NET es capaz de hacer.

También parece que tienes un desarrollador de .NET disponible, así que te sugiero encarecidamente que publiques tu pregunta en el foro de desarrolladores de CR .NET y busques también y descargues nuestros ejemplos de .NET sobre cómo configurar la ubicación de tu nueva fuente de datos en código. O si optas por la ruta del dll, cómo hacer que todo funcione.

Gracias de nuevo

Don

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Gracias por tu respuesta. No sé cómo explicar de otra manera lo que significa usar controladores ADO.NET en lugar de simplemente usar conjuntos de datos. No se trata de usar cr_myowndriver. Se trata de tener un cr_adonet que pueda utilizar proveedores de datos ADO.NET (muy diferente de un conjunto de datos).

De todos modos, supongo que la respuesta es no, Crystal no puede usar controladores ADO.NET. Tendremos que seguir con ODBC para Sql Server y el cliente nativo de Sybase para Sybase.

Sería una buena adición poder utilizar ADO.NET. Eliminaría la necesidad de implementar grandes clientes nativos. ¿Quizás en una próxima versión?

No sé qué es un desarrollador .ENT, ¿quizás "entidad de datos"? Sin embargo, eso es completamente diferente. Si te referías a un desarrollador .NET, por lo general saben qué es un proveedor de datos ADO.NET, si han programado bases de datos con ADO.NET.

Por eso hago esta pregunta, nuestros desarrolladores .NET no pudieron encontrar ninguna forma de usar proveedores ADO.NET con CR 2008. Solo conjuntos de datos ADO.NET, que no funcionan para informes conectados y subinformes que usan tablas diferentes.

Gracias de nuevo por tu tiempo.

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?