Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Error extraño!

Estas en el tema de Error extraño! en el foro de SQL Server en Foros del Web. Hola a todos, SQL server me esta devolviendo este error: Código: Microsoft OLE DB Provider for SQL Server error '80040e14' The text, ntext, and image ...
  #1 (permalink)  
Antiguo 12/08/2009, 09:43
 
Fecha de Ingreso: abril-2009
Mensajes: 196
Antigüedad: 15 años
Puntos: 0
Error extraño!

Hola a todos,

SQL server me esta devolviendo este error:

Código:
Microsoft OLE DB Provider for SQL Server error '80040e14'

The text, ntext, and image data types cannot be compared or sorted, except when using IS NULL or LIKE operator.
Y el sql que le he pasado es este:
Código:
SELECT idusuario, ipusuario, datediff("n",fechayhora,getdate()), sesion FROM tablasesion WHERE idusuario='123456'
Lo extraño es que esta clausula se ejecuta correctamente en otro punto de la aplicación.... que podría estar ocurriendo?!

Última edición por jotamarios; 12/08/2009 a las 09:51
  #2 (permalink)  
Antiguo 12/08/2009, 10:27
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Respuesta: Error extraño!

Si ninguno de los campos es de tipo que sale en el mensaje de error, entonces el error esta en otro lado.
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #3 (permalink)  
Antiguo 12/08/2009, 10:28
Avatar de GabrielAizcorbe  
Fecha de Ingreso: mayo-2009
Ubicación: En la luna.
Mensajes: 30
Antigüedad: 15 años
Puntos: 3
Respuesta: Error extraño!

Hola JotaMarios,

No tengo SQLServer aquí mismo para hacer unas pruebas, pero te comento dos cosas a ver si te ayudan.

1) Estas evaluando una tabla de sesiones, con lo cual es bastante probable que cuando el programa te da el error algún campo de esa tabla ha quedado nulo o vacío, el truco sería saber CUAL, para eso, el punto 2

2) Pon la aplicación en modo debug, y antes de llegar al punto en que te da el error, haz el MISMO select en el QueryAnalyzer a ver que es lo que realmente hay en el servidor en ese momento.

Espero que esto te ayude, de lo contrario será bueno que pongas mas detalles de que es lo que estas corriendo contra la base de datos, que hace el código etc.

Cualquier cosa a las órdenes
Saludos
  #4 (permalink)  
Antiguo 12/08/2009, 10:33
 
Fecha de Ingreso: abril-2009
Mensajes: 196
Antigüedad: 15 años
Puntos: 0
Respuesta: Error extraño!

muchas gracias por sus respuestas....
efectivamente es una tabla que uso para manejar sesiones, pero, he probado en el queryanalyzer y el dato se encuentra ahi, he puesto a imprimir el query y el dato a consultar desde el codigo y luego lo pruebo, todo sale bien, ningun error devuelto por el motor de BD. Es por esto que se me hace extraño :S... porque logicamente es el motor quien devuelve ese error, pero si lo ejecuto directamente no sale, y no sabria como encontrar que esta fallado. :(
  #5 (permalink)  
Antiguo 12/08/2009, 10:39
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Respuesta: Error extraño!

¿Puedes indicarnos el tipo de datos de todas las columnas implicadas en tu select?
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #6 (permalink)  
Antiguo 12/08/2009, 10:41
 
Fecha de Ingreso: abril-2009
Mensajes: 196
Antigüedad: 15 años
Puntos: 0
Respuesta: Error extraño!

Si!

idusuario es nvarchar
ipusuario es varchar
fechayhora es datetime
sesion es varchar
  #7 (permalink)  
Antiguo 12/08/2009, 11:10
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Respuesta: Error extraño!

Debe ser por el nvarchar quizas.
Prueba asi:
Código sql:
Ver original
  1. SELECT idusuario, ipusuario, datediff("n",fechayhora,getdate()), sesion
  2. FROM tablasesion
  3. WHERE idusuario=n'123456'
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #8 (permalink)  
Antiguo 12/08/2009, 11:14
 
Fecha de Ingreso: abril-2009
Mensajes: 196
Antigüedad: 15 años
Puntos: 0
Respuesta: Error extraño!

El problema ahi es que yo uso "command" de ASP y este no me permitiria pasarle la 'n' asi no mas. Y desde otro punto donde lo he llamado, enviandole el mismo dato (idusuario) y no me sale error.
  #9 (permalink)  
Antiguo 12/08/2009, 11:40
Avatar de GabrielAizcorbe  
Fecha de Ingreso: mayo-2009
Ubicación: En la luna.
Mensajes: 30
Antigüedad: 15 años
Puntos: 3
Respuesta: Error extraño!

JotaMarios,

Yo no pondria un SQL en una pagina web!, creo que te convendria hacer una UDF al que le pases por parametro lo que tu quieras, en este caso IDUSUARIO, por otra parte al tener el codigo SQL en una UDF te sera mucho mas facil debuggearlo, podras poner salidas a otra tabla para ver que esta sucediendo por ejemplo, o lo tambien podras debuggear el codigo de la funcion.

Entiendes lo que digo?
Saludos
  #10 (permalink)  
Antiguo 12/08/2009, 12:35
 
Fecha de Ingreso: abril-2009
Mensajes: 196
Antigüedad: 15 años
Puntos: 0
Respuesta: Error extraño!

gabrielaizcorbe muchas gracias por tu recomendacion... uso el Command para precompilar la sentencia y evitar la inyeccion sql, uso "on error resume next" para controlar los errores y que no se muestre las sentencias sql.
  #11 (permalink)  
Antiguo 12/08/2009, 12:58
Avatar de GabrielAizcorbe  
Fecha de Ingreso: mayo-2009
Ubicación: En la luna.
Mensajes: 30
Antigüedad: 15 años
Puntos: 3
Respuesta: Error extraño!

Genial! bien pensado.

Bueno, mientras tanto podrías usar un function para analizar que sucede dentro.

De todas maneras:
en que estas programando VB o C#?
en que momento se cae la aplicación ?
el parámetro que pasas esa "segunda vez" tiene algún contenido o esta vacío ?
no habrá algún problema de tipos entre las variables que usas y los commands ?

Sigo pensando

Saludos
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:51.