Foros del Web » Programando para Internet » ASP Clásico »

Buscar error de sintaxis!

Estas en el tema de Buscar error de sintaxis! en el foro de ASP Clásico en Foros del Web. Ven ustedes algun error de sitaxis en esta expresión: sSQL = "" sSQL = sSQL & "INSERT INTO Xe (ItemOwner, cTitle, turism, lifeEstile, surfing, realEstate, ...
  #1 (permalink)  
Antiguo 16/12/2002, 21:38
 
Fecha de Ingreso: enero-2002
Ubicación: Perez Zeledon Costa Rica
Mensajes: 1.009
Antigüedad: 23 años, 3 meses
Puntos: 11
Buscar error de sintaxis!

Ven ustedes algun error de sitaxis en esta expresión:
sSQL = ""
sSQL = sSQL & "INSERT INTO Xe (ItemOwner, cTitle, turism, lifeEstile, surfing, realEstate, "
sSQL = sSQL & " loadging, ecology, cEmail, cPhone, site, link, description, date) "
sSQL = sSQL & " VALUES ( "
sSQL = sSQL & SQLVal(valRS.Fields("ID")) & ", "
sSQL = sSQL & SQLStr(scTitle) & ", "
sSQL = sSQL & request.form("Tourism") & ", "
sSQL = sSQL & request.form("lifeEstile") & ", "
sSQL = sSQL & request.form("Surfing") & ", "
sSQL = sSQL & request.form("RealEstate") & ", "
sSQL = sSQL & request.form("Loadging") & ", "
sSQL = sSQL & request.form("Ecology") & ", "
sSQL = sSQL & SQLStr(scEmail) & ", "
sSQL = sSQL & SQLStr(scPhone) & ", "
sSQL = sSQL & SQLStr(sSite) & ", "
sSQL = sSQL & SQLStr(slink) & ", "
sSQL = sSQL & SQLStr(sDescription) & ", "
sSQL = sSQL & SQLDate(dCloseDate) & " )"
Response.Write "<P>" & sSQL & "<BR>"
GobjConnect.Execute(sSQL)

Al dar el response write me escribe:
INSERT INTO Xe (ItemOwner, cTitle, turism, lifeEstile, surfing, realEstate, loadging, ecology, cEmail, cPhone, site, link, description, date) VALUES ( 12, 'asdfasdfa', true, true, true, true, true, true, 'asfda', 'asdfa', NULL, NULL, 'asdfasdf', #16/12/2002 08:34# )

El campo Item Owner es numerico
Ctitle es texto
Turism , lifeEstile, surfing, realEstate, loadging, ecology son yes/no
cEmail , cPhone, site, link, description , son texto
date es date/time


Pero me da este error:
· Tipo de error:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Controlador ODBC Microsoft Access] Error de sintaxis en la instrucción INSERT INTO.
/asp/postitem2.asp, line 94
  #2 (permalink)  
Antiguo 16/12/2002, 21:49
 
Fecha de Ingreso: diciembre-2001
Ubicación: Mercedes
Mensajes: 92
Antigüedad: 23 años, 4 meses
Puntos: 0
tal vez por los valores NULL ?... proba cambiarlos por '' o los true por 1

no te sabria decir mas porque no tengo tu BD.
  #3 (permalink)  
Antiguo 16/12/2002, 21:49
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
La verdad que así, a simple vista, no le veo ningún error de sintaxis. La estructura está bien... INSERT INTO Tabla (campo separados por comas) VALUES (valores separados por comas)

Tal vez sea alguna chotada de formatos de campos...
No se, los campo tipo date/time de access no los utilizo, en su lugar suelo usar un formato numerico AAAAMMDD si necesito operar luego con las fechas o simplemente el resultado de Now() en un campo text si sólo lo utilizo para ver la fecha de última modificación.

Otra cosa que suelo hacer: los campos tipo "yes/no" los manejo con -1/0 como valores en vez de TRUE/FALSE (aunque ahora no recuerdo cuál valor corresponde a TRUE y cuál a FALSE )


Editando:
RENZO, dejemos de coincidir al responder!!!
  #4 (permalink)  
Antiguo 17/12/2002, 07:14
Avatar de maestro  
Fecha de Ingreso: febrero-2002
Ubicación: España
Mensajes: 2.364
Antigüedad: 23 años, 2 meses
Puntos: 1
Desglosa en partes el insert, añade solo dos o 3 SQL, si funcionan añade otros trantos y asi hasta que encuentres donde falla.
El Famoso Metodo de prueba y error...
__________________
Jose Maria Fernandez
[email protected]
Http://www.expansionweb.net
  #5 (permalink)  
Antiguo 17/12/2002, 08:03
 
Fecha de Ingreso: enero-2002
Ubicación: Perez Zeledon Costa Rica
Mensajes: 1.009
Antigüedad: 23 años, 3 meses
Puntos: 11
Ya aislé el error; está en la fecha:

el SQL es:
asSQL = ""
asSQL = asSQL & "INSERT INTO Comercials (date) "
asSQL = asSQL & " VALUES ( "& SQLDate(dCloseDate) & " )"
response.Write asSQL
GobjConnect.Execute(asSQL)

y me da:
Tipo de error:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Controlador ODBC Microsoft Access] Error de sintaxis en la instrucción INSERT INTO.

el response.write me da:
INSERT INTO Comercials (date) VALUES ( #16/12/2002 19:04# )

de modo que el date está bien escrito (creo).

las propiedades del campo date son:
data type: date/time
format: General date
required: No
Indexed: Yes (duplicates OK)

Por ke está mal?
  #6 (permalink)  
Antiguo 17/12/2002, 09:13
Avatar de maestro  
Fecha de Ingreso: febrero-2002
Ubicación: España
Mensajes: 2.364
Antigüedad: 23 años, 2 meses
Puntos: 1
Pues ahora intenta desglosar el DATE y TIME por separado, en alguno de los dos el formato que estas empleando no es el correcto, puede que uses dd/mm/aa y tenga que ser mm/dd/aa o cosas similares.
__________________
Jose Maria Fernandez
[email protected]
Http://www.expansionweb.net
  #7 (permalink)  
Antiguo 17/12/2002, 09:26
 
Fecha de Ingreso: enero-2002
Ubicación: Perez Zeledon Costa Rica
Mensajes: 1.009
Antigüedad: 23 años, 3 meses
Puntos: 11
Como desgloso el formato de la fecha?

mirando veo que:

En la BD tengo este formato:
dia mes año

no se si esto tendrá que ver, pero en la propiedad del campo date en format: General date: 19/06/1994 05:34:23 p.m.



y el response write me manda dia mes año.
#16/12/2002 20:32#
no me da los segundos ni el a.m o p.m

Podrá ser eso, Qué hago?


Última edición por rashid; 17/12/2002 a las 09:30
  #8 (permalink)  
Antiguo 17/12/2002, 09:27
 
Fecha de Ingreso: diciembre-2001
Ubicación: Mercedes
Mensajes: 92
Antigüedad: 23 años, 4 meses
Puntos: 0
1.- El error que esta dando no es de tipo de datos sino de sintaxis.
2.- Creo que esta en el hecho de que tienes un campo con el nombre "date" y date es una funcion que devuelve la fecha, o sea es una palabra reservada.


Soluciones:

2 cambiale el nombre al campo

1 pone el nombre del campo entre corchetes sin espacios
INSERT INTO Comercials ([date]) VALUES ( #16/12/2002 19:04# )

contame como te fue...
  #9 (permalink)  
Antiguo 17/12/2002, 09:29
Avatar de maestro  
Fecha de Ingreso: febrero-2002
Ubicación: España
Mensajes: 2.364
Antigüedad: 23 años, 2 meses
Puntos: 1
No habra algun pequeño error de sintaxis y intentaras pasar el valor con un espacio en blanco en alguna parte.
Algo como esto: "25/12/2002 " o algo como esto: " 25/12/2002", o un caracter despistado como ' o "
__________________
Jose Maria Fernandez
[email protected]
Http://www.expansionweb.net
  #10 (permalink)  
Antiguo 17/12/2002, 09:34
 
Fecha de Ingreso: enero-2002
Ubicación: Perez Zeledon Costa Rica
Mensajes: 1.009
Antigüedad: 23 años, 3 meses
Puntos: 11
Hey Renzo.

Gracias, era por lo de la palabra reservada.
Puchis no sabía que esas cosas pasaban.

He aprendido mucho de LOS MAESTROS.

  #11 (permalink)  
Antiguo 17/12/2002, 09:36
Avatar de maestro  
Fecha de Ingreso: febrero-2002
Ubicación: España
Mensajes: 2.364
Antigüedad: 23 años, 2 meses
Puntos: 1
AHH, yo tampoco cai, es lo mismo que cuando creas una consulta dinamica en ACCESS con un campo llamado nombre y en los criterios del where pones [NOMBRE], con lo que te devuelve todo el recordset,
Vamos a tener que volver a estudiar SQL.
__________________
Jose Maria Fernandez
[email protected]
Http://www.expansionweb.net
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 15:19.