Avalados por :

Problema de Error del Conector de Base de Datos 8114 en Crystal 2008 SP2: Soluciones y Causas

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

Recientemente realizamos la actualización de Crystal 2008 SP2 y esta mañana nos encontramos con algo bastante extraño.

Tenemos alrededor de 50 informes y los probamos después de la actualización SP2. NOTA: NINGUNO de estos informes ha cambiado, ni sus Procedimientos Almacenados han cambiado en más de un año. En otras palabras, este es el mismo código e informes que funcionaban bien el día anterior a la actualización SP2, pero después de hacerlo...

UN informe no funciona y produce continuamente "Error del conector de base de datos 8114" siendo el 8114 un error de SQL producido cuando hay problemas al traducir datos de fecha. No cambiamos ningún dato de fecha, y los otros 49 informes se ejecutan bien accediendo a los mismos datos a los que accede este informe.

Entré en el Diseñador Crystal de Visual Studio e hice una Verificación de Informe. Para mi sorpresa, recibí el mensaje "usp_rpt_ErrorSummary ha cambiado, procediendo a corregir el informe" - DE HECHO, ese Procedimiento Almacenado NO ha cambiado en absoluto. Peor aún, después de que la Verificación se ejecuta dice "El informe está actualizado". PERO, al intentar ejecutar el informe, obtenemos el MISMO error nuevamente.

Hicimos este ciclo unas cinco veces, y cada vez lo mismo: el Informe ha cambiado, lo corregimos, y explota con el mismo error.

Ahora aquí está la PARTE IMPORTANTE... Esto sucede en una SOLA máquina: la máquina de compilación donde hicimos la actualización SP2. Si movemos el mismo informe a otra máquina (sin la actualización SP2), el informe se ejecuta bien. Sin errores.

Por lo tanto, realmente hay dos problemas aquí:

#1, ¿Por qué, cuando ejecutamos una Verificación y dice "El informe está actualizado", luego vuelve y explota de nuevo,

#2, ¿Por qué este informe se ejecutaría bien en CUALQUIER máquina siempre y cuando NO tenga la actualización SP2?

Cualquier ayuda es apreciada.

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

4 Respuestas

0
Cargando...

Hola Don...

Descartaría la corrupción del informe porque hemos restaurado el informe original desde las copias de seguridad, y nuevamente, funciona bien en cada máquina excepto en la máquina con la actualización SP2.

Si ejecutamos la consulta en sí misma, sí, obtenemos una gran cantidad de datos, por lo que sé que la consulta está bien, y como dije, no ha cambiado en más de un año.

Cuando preguntas "verificar la configuración local de los usuarios..." Sí, buena idea, pero es solo en una máquina donde tenemos problemas con este, y esa configuración está bien, normal, como debería ser.

Y no, no tenemos SP2 en ninguna máquina excepto una, la que llamamos nuestra máquina de desarrollo / compilación, y ese es el único lugar donde este informe nos está dando problemas.

Creo que tu sugerencia de desglosar el informe "poco a poco" es buena. Voy a asignar a uno de mis colaboradores para que lo haga y te informaré sobre los resultados. Sin embargo, puede llevar uno o dos días.

¡Gracias!

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

Hola Bruce,

Eso es extraño, la corrupción del archivo de informe podría estar causando el problema. ¿Qué sucede si copia un informe de una PC donde funciona y prueba nuevamente?

La corrección del informe indica que lo que Crystal Reports ha guardado en el archivo RPT no es lo mismo que está en la base de datos actualmente. Respetamos completamente la seguridad de la base de datos, posiblemente ese usuario no tenga permisos de lectura establecidos en una o más tablas. Como se sugiere, intente eliminar partes del informe para ver cuál es el objeto real que está causando el problema.

Según Microsoft, el error:

Si el texto de error se refiere tanto a DBTYPE_DATE como a datetime, respectivamente, este mensaje de error indica que una columna de tipo de datos DBTYPE_DATE de OLE DB de una tabla remota no pudo convertirse en un valor datetime en Microsoft® SQL Serveru2122. La columna DBTYPE_DATE probablemente tiene un valor fuera del rango admitido por el tipo de datos datetime (los valores datetime deben estar entre el 1 de enero de 1753 y el 31 de diciembre de 9999). Debido a que el rango de valores del tipo de datos DBTYPE_DATE es mayor que el del tipo de datos datetime de SQL Server, estos errores pueden ocurrir si la columna contiene valores fuera del rango admitido por SQL Server.

¿Si muestra la consulta, ve los datos en el SQL?

Verifique la configuración de fecha y hora local de los usuarios, podría ser que esté utilizando una opción o configuración regional que otros no están usando y Crystal Reports está intentando convertir pero no puede. También pregunte si ha realizado algún cambio en la configuración de fecha en su PC también.

¿Tiene SP2 instalado en algún otro lugar donde esté funcionando?

Gracias

Don

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

Hola Don,

No, eso es lo que resulta tan extraño en este caso: la base de datos es SQL 2005 y NO hay datetimes en el informe EN ABSOLUTO. La única DateTime involucrada está en los parámetros pasados, ya sabes, tipo Fecha Desde, Fecha Hasta. Pero nuevamente, es SQL 2005, por lo que realmente nada debería haber cambiado, y como mencioné en mi publicación original, este es un informe y un procedimiento almacenado que no ha sido modificado en más de un año, si no más.

Aún más extraño, los parámetros para nuestros más de 50 informes son los mismos en todos los casos, y cada otro informe se ejecuta bien, solo este parece atascarse con el famoso error 8114, que es un error de tipo de traducción en el lado de SQL y solo ocurre en la máquina de desarrollo/compilación, la ÚNICA máquina que ha tenido la actualización SP2. No puedo imaginar qué está pasando aquí, pero tiene que tener algo que ver con la actualización SP2, ya que es el único elemento "nuevo" en la ecuación.

Sé que no te estoy dando mucho para trabajar aquí...

¿Puedes comentar algo sobre por qué cuando ejecutamos Verificar Base de Datos, nota que algo ha cambiado (aunque realmente no ha cambiado nada) y luego dice "procediendo a corregir el informe" (lo cual aparentemente hace), y sin embargo, la próxima vez que lo ejecutamos en la máquina actualizada con SP2, mismo problema - error 8114 - como si Verificar Base de Datos en realidad no estuviera haciendo nada en absoluto.

(Me gustaría resolver este problema, pero no es una crisis: este informe y todos los demás se ejecutan perfectamente en cada máquina que hemos probado que no tiene la actualización SP2, así que creo que por ahora, bueno, como digo, no es una crisis apremiante, ¡solo un misterio maldito!)

Gracias por la ayuda.

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

Hola Bruce,

¿Cuál es tu base de datos? Si es MS SQL Server 2008, instala Fix Pack 2.2. Cambió porque CR no reconoce el nuevo controlador MS SQL 2008 y genera SQL genérico para fechas.

Si miras el SQL en Mostrar Consulta SQL en el diseñador, verás algo como:

"Northwind"."dbo"."Ventas de Empleados por País";1 CONVERTIR(FECHA, '2009-08-18 10:24:02', 120),..CONVERTIR(FECHA, '2009-08-18 10:24:02', 120)

El problema es el CONVERTIR, el SQL debería lucir así:

"Northwind"."dbo"."Ventas de Empleados por País";1 {ts '2009-08-17 10:38:20'}, {ts '2009-08-18 10:38:23'}

Si eso no resuelve el problema, ¿puedes empezar a eliminar partes del informe, comenzando con subinformes y pasando a secciones completas a la vez para ver si es algún objeto del informe o alguna tabla de origen de datos lo que causa el problema?

También necesito saber si estás utilizando ODBC o OLE DB como controlador de base de datos.

Gracias

Don

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?