Fechas enviadas desde cr 7 a sql server

Tengo un problemilla que no soy capaz de solucionar.
Estoy trabajando con cr 7, con el driver pssql, es decir con el directo de crystal.
El caso es que si pongo una filtro de fecha en la "fórmula de selección de registros" cuyo mes es enero, abril o agosto me da error de dll.
Sé cual es el problema y es que si yo por ejemplo le pongo en la fórmula:
{tabla.fecha}=date(2002,08,01)
él lo traduce así en la consulta sql que le envía a la b.d :
where tabla.fecha="Aug 1 2002 00:00:00AM"
EL PROBLEMA ES que sql server no reconoce "Aug" como Agosto y da un error, para él agosto es "Ago".
No sé como solucionarlo, porque le he cambiado a inglés el lenguaje del servidor de sql y nada. He buscado en cr alguna opción para cambiarle esto y no la he encontrado.
¿Alguno me puede decir algo?
Un detalle: "si cambio el controlador a OLEDB para Sql Server ya no me da ese error" pero es que no puedo cambiarlo, lo tengo que hacer con el pssql.

1 Respuesta

Respuesta
1
Hace mucho que no utilizo crystal, pero creo que puedes utilizar funciones de transformación del estilo a format de VB. Con format puedes transformar la fecha al formato que quieras donde el mes venga con número en vez de con letras.
De todas formas, también conviene que lo transformes en la base de datos. Algo así: where tabla. Fecha = CONVERT (DATETIME, '01/08/2002', 103) donde 103 indica que el formato de la fecha es "dd/mm/yy".
Hola dcanate, gracias por tu respuesta.
Sé utilizar el convert y tal, el problema es que yo no soy quien envía la consulta transac al sql sino el cr. Es decir, yo le doy unva view al cr como origen de los datos del informe y posteriormente le paso una fórmula de filtro para que únicamente me devuelva los datos q. cumplan una determinada condición... aich, es que no se si me estoy explicando... lo siento :(
El problema es que el "cr" envía un formato de fecha en inglés que "no entiende el sql server".
¿Podría cambiar en sql server el formato de las fechas?
Gracias, y perdona por las molestias.
¿no le puedes poner en el fitro
tabla.fecha = CONVERT (DATETIME, '01/08/2002', 103)
Yo puedo ponerle en la consulta:
CONVERT (DATETIME, fecha, 103) as mifecha, pero cuando el cr le envíe al sql un filtro tipo "Aug 1 ..." me dará el mismo error. ¿No?.
Voy a probarlo y así te lo digo seguro.
...
Efectivamente, da el mismo error.
Voy a intentar cambiarle el idioma al usuario de conexión a ver como respira.
¿Se te ocurre alguna otra cosilla?
Muchísimas gracias.
¿En crystal no hay alguna función del tipo format (VB) que te transforme la fecha al formato que quieras?
Lo siento, pero de crystal no me acuerdo de mucho (y después de los problemas que he tenido con él, casi me alegro)

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas