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

Error -2147217900.... Error de sintaxis (falta operador)

Estas en el tema de Error -2147217900.... Error de sintaxis (falta operador) en el foro de Mysql en Foros del Web. Hola a todos espero que me puedan ayudar, estoy realizando una consulta sql desde vb6. Les explico, estoy relacionando Datos de empleado con horarios preestablecidos, ...
  #1 (permalink)  
Antiguo 27/10/2011, 09:31
 
Fecha de Ingreso: octubre-2011
Mensajes: 21
Antigüedad: 13 años
Puntos: 0
Error -2147217900.... Error de sintaxis (falta operador)

Hola a todos espero que me puedan ayudar, estoy realizando una consulta sql desde vb6. Les explico, estoy relacionando Datos de empleado con horarios preestablecidos, en la tabla UserUSedSClasses es la asignacion de uno o mas horarios a un empleado y la tabla SCHCLASS estan los horarios y su codigo:

Tengo tres Tablas
USERINFO (del cual necesito): USERID, NAME, TITLE
SCHCLASS (necesito): SCHCLASSID, SCHNAME, STARTTIME, ENDTIME, CHECKINTIME1, CHECKINTIME2, CHECKOUTTIME1, CHECKOUTTIME2
UserUsedClasses (Necesito): UserID, SchId.

Uff. complicado no?

mi sentencia sql es la siguiente:

strsql = " select USERINFO.USERID, NAME, TITLE, SCHNAME, STARTTIME, ENDTIME, CHECKINTIME1, CHECKINTIME2, CHECKOUTTIME1, CHECKOUTTIME2 " & _
" from USERINFO inner join UserUsedSClasses on USERINFO.USERID = UserUsedSClasses.UserId " & _
" inner join SCHCLASS on SCHCLASS.SCHCLASSID = UserUsedSClasses.SchId
" & _
" where USERINFO.USERID = " & id & " or USERINFO.NAME = '" & nom & "' "

el error me esta remarcado con negrita,
alguien me podria decir donde esta el error, por favor?
Espero respuestas.
Gracias
  #2 (permalink)  
Antiguo 27/10/2011, 09:38
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Error -2147217900.... Error de sintaxis (falta operador)

Esto:
Cita:
Error -2147217900.... Error de sintaxis (falta operador)
Me hace sospechar que el error está aquí:
Código SQL:
Ver original
  1. WHERE USERINFO.USERID = " & id & "

¿Estás seguro que esa variable contiene realmente algo?
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 27/10/2011, 09:47
 
Fecha de Ingreso: octubre-2011
Mensajes: 21
Antigüedad: 13 años
Puntos: 0
Respuesta: Error -2147217900.... Error de sintaxis (falta operador)

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Esto:

Me hace sospechar que el error está aquí:
Código SQL:
Ver original
  1. WHERE USERINFO.USERID = " & id & "

¿Estás seguro que esa variable contiene realmente algo?
------------
Son mis variables de busqueda, busco por el Id del usuario o por el nombre, pero valido para que los datos no entren vacios.
Por cierto " & id & " es entero, por eso no uso ' '
Gracias por tu pronta respuesta
  #4 (permalink)  
Antiguo 27/10/2011, 09:54
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Error -2147217900.... Error de sintaxis (falta operador)

El tema es que lo que te está diciendo es que falta un operador, y eso sólo puede suceder si y sólo si hay una operación lógica en la cual falte uno de los elementos. No peude ser en el INNER JOIN (ninguno de ellos), porque en ese caso el error no sería la falta de un operador, sino columna desconocida o bien error de sintaxis en el FROM.
Por otro lado, el número -2147217900 parece un valor INT desbordado, por lo que el problema sigue siendo el contenido de la variable.
¿Probaste debuggear línea a linea en VB para ver cómo queda armada la consulta que mandas al MySQL?
Captura la sentencia y posteala. Veamos cómo es que se produce el problema.

El último detalle ya lo sé. Por eso no te lo pregunté (yo también trabajo en VB.Net), pero refuerza el hecho de que puede ser un problema con la variable.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 27/10/2011, 10:09
 
Fecha de Ingreso: octubre-2011
Mensajes: 21
Antigüedad: 13 años
Puntos: 0
Respuesta: Error -2147217900.... Error de sintaxis (falta operador)

Cita:
Iniciado por gnzsoloyo Ver Mensaje
El tema es que lo que te está diciendo es que falta un operador, y eso sólo puede suceder si y sólo si hay una operación lógica en la cual falte uno de los elementos. No peude ser en el INNER JOIN (ninguno de ellos), porque en ese caso el error no sería la falta de un operador, sino columna desconocida o bien error de sintaxis en el FROM.
Por otro lado, el número -2147217900 parece un valor INT desbordado, por lo que el problema sigue siendo el contenido de la variable.
¿Probaste debuggear línea a linea en VB para ver cómo queda armada la consulta que mandas al MySQL?
Captura la sentencia y posteala. Veamos cómo es que se produce el problema.

El último detalle ya lo sé. Por eso no te lo pregunté (yo también trabajo en VB.Net), pero refuerza el hecho de que puede ser un problema con la variable.
--------------
" select USERINFO.USERID, NAME, TITLE, SCHNAME, STARTTIME, ENDTIME, CHECKINTIME1, CHECKINTIME2, CHECKOUTTIME1, CHECKOUTTIME2 from USERINFO inner join UserUsedSClasses on USERINFO.USERID = UserUsedSClasses.UserId inner join SCHCLASS on SCHCLASS.SCHCLS"

Asi es como arma la sentecia, queda inconmpleta. Mi sentencia es muy larga?
Por otra parte quite la variable "& id &" y el problema continua

Última edición por Ghericoh; 27/10/2011 a las 10:20
  #6 (permalink)  
Antiguo 27/10/2011, 10:40
Avatar de gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 17 años
Puntos: 2658
Respuesta: Error -2147217900.... Error de sintaxis (falta operador)

Esa no es la sentencia.

Lo que te dije es que captures el valor que toma la variable strsql cuando termina de ejecutar esa sentencia de VB y que postees ese valor. No que copies lo que pones en el código del programa.
El problema esta en lo que se genera dinámicamente, no en lo que diseñaste.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #7 (permalink)  
Antiguo 27/10/2011, 12:31
 
Fecha de Ingreso: octubre-2011
Mensajes: 21
Antigüedad: 13 años
Puntos: 0
Respuesta: Error -2147217900.... Error de sintaxis (falta operador)

Ok, Ya lo solucione quite los INNER JOIN y puse una consulta simple

strsql = " select USERINFO.USERID, NAME, TITLE, SCHNAME, STARTTIME, ENDTIME, CHECKINTIME1, CHECKINTIME2, CHECKOUTTIME1, CHECKOUTTIME2 " & _
" from USERINFO,UserUsedSClasses, SCHCLASS " & _
" where UserUsedSClasses.UserId = USERINFO.USERID and (UserUsedSClasses.SchId = SCHCLASSID " & _
" and (USERINFO.USERID = " & id & " or USERINFO.NAME = '" & nom & "')) "

Gracias de todos modos

Etiquetas: sql
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 13:49.