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

error en select

Estas en el tema de error en select en el foro de ASP Clásico en Foros del Web. Hola amigos del foro. Tengo una pagina la cual se conecta a access y tiene la sgte sintaxis: dim usuario usuario = request.form("usuario") Set oConn ...
  #1 (permalink)  
Antiguo 17/12/2002, 06:48
Avatar de sepulman  
Fecha de Ingreso: agosto-2002
Mensajes: 274
Antigüedad: 22 años, 9 meses
Puntos: 0
error en select

Hola amigos del foro.
Tengo una pagina la cual se conecta a access y tiene la sgte sintaxis:

dim usuario
usuario = request.form("usuario")
Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Provider = "Microsoft.Jet.OLEDB.4.0"
oConn.Open (Server.Mappath("proveedores_internet.mdb"))
Set tabla = Server.CreateObject("ADODB.recordset")
sql = "SELECT * FROM proveedores WHERE rut_pro = " + Replace(usuario, "'", "''") + ""
tabla.Open sql, oConn

rut_pro es de tipo entero_largo y debo compararlo con la variable usuario.
la variable usuario lo recojo desde otro formulario.
una vez que lo capturo tengo que hacer un filtro para ese usuario pero me tira el sgte error:

Error de sintaxis (falta operador) en la expresión de consulta 'rut_pro ='.
no se que pasa, alguien me podria echar una manito por favor.
__________________
Saludos
Miguel Angel
<[email protected]>
  #2 (permalink)  
Antiguo 17/12/2002, 07:08
Avatar de maestro  
Fecha de Ingreso: febrero-2002
Ubicación: España
Mensajes: 2.364
Antigüedad: 23 años, 3 meses
Puntos: 1
Haz el replace fuera de la SQL para no liarlo

dim usuario
usuario = request.form("usuario")
replacetext= replace...... ' lo que sea
Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Provider = "Microsoft.Jet.OLEDB.4.0"
oConn.Open (Server.Mappath("proveedores_internet.mdb"))
Set tabla = Server.CreateObject("ADODB.recordset")
sql = "SELECT * FROM proveedores WHERE rut_pro = "&replacetext&"
tabla.Open sql, oConn
__________________
Jose Maria Fernandez
[email protected]
Http://www.expansionweb.net
  #3 (permalink)  
Antiguo 17/12/2002, 07:27
Avatar de sepulman  
Fecha de Ingreso: agosto-2002
Mensajes: 274
Antigüedad: 22 años, 9 meses
Puntos: 0
maestro gracias por responder, pero.....
mira, puse lo sgte:

dim usuario
dim replacetext
usuario = request.form("usuario")
replacetext = replace(usuario, "'", "''")
Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Provider = "Microsoft.Jet.OLEDB.4.0"
oConn.Open (Server.Mappath("proveedores_internet.mdb"))
Set tabla = Server.CreateObject("ADODB.recordset")
sql = "SELECT rut_pro FROM proveedores WHERE rut_pro = "&replacetext&" "
tabla.Open sql, oConn

y me tira el sgte error:

Tipo de error:
Microsoft JET Database Engine (0x80040E14)
Error de sintaxis (falta operador) en la expresión de consulta 'rut_pro ='.
/validando_proveedor.asp, line 21



no sabo que puede ser
a lo mejor me equivoque en la asignacion a replacetext..
no se.
me podrias echar una manito
__________________
Saludos
Miguel Angel
<[email protected]>
  #4 (permalink)  
Antiguo 17/12/2002, 07:41
Avatar de ElAprendiz  
Fecha de Ingreso: enero-2002
Ubicación: Maipu, Chile
Mensajes: 3.706
Antigüedad: 23 años, 3 meses
Puntos: 2
puede que tu variable usuario este vacia
__________________
Manual de ASP Avanzado ;-)
  #5 (permalink)  
Antiguo 17/12/2002, 07:51
Avatar de sepulman  
Fecha de Ingreso: agosto-2002
Mensajes: 274
Antigüedad: 22 años, 9 meses
Puntos: 0
Elaprendiz:
pero si mi variable usuario esta vacia entonces el recordset no deberia devolver nada , pero no caerse. en teoria deberia ser asi.

igual hice la prueba (por si acaso) y se cae donde mismo.

Tipo de error:
Microsoft JET Database Engine (0x80040E14)
Error de sintaxis (falta operador) en la expresión de consulta 'rut_pro ='.
/validando_proveedor.asp, line 20


__________________
Saludos
Miguel Angel
<[email protected]>
  #6 (permalink)  
Antiguo 17/12/2002, 10:23
Avatar de sepulman  
Fecha de Ingreso: agosto-2002
Mensajes: 274
Antigüedad: 22 años, 9 meses
Puntos: 0
por fa' necesito ayuda
se los agredecere muchisiimo ...
__________________
Saludos
Miguel Angel
<[email protected]>
  #7 (permalink)  
Antiguo 17/12/2002, 10:47
Avatar de ElAprendiz  
Fecha de Ingreso: enero-2002
Ubicación: Maipu, Chile
Mensajes: 3.706
Antigüedad: 23 años, 3 meses
Puntos: 2
jeje

puede que sea una tontera pero a lo mejor el caracter _ te lo esta tomando como fin de linea

saludos
__________________
Manual de ASP Avanzado ;-)
  #8 (permalink)  
Antiguo 18/12/2002, 08:28
Avatar de sepulman  
Fecha de Ingreso: agosto-2002
Mensajes: 274
Antigüedad: 22 años, 9 meses
Puntos: 0

les cuento que solucione el problema.
me que quedo asi:

Dim tabla__MMColParam2
tabla__MMColParam = "1"
if (Request.Form("usuario") <> "") then tabla__MMColParam2 = Request.Form("usuario")
Set oConn = Server.CreateObject("ADODB.Connection")
oConn.Provider = "Microsoft.Jet.OLEDB.4.0"
oConn.Open (Server.Mappath("proveedores_internet.mdb"))
Set tabla = Server.CreateObject("ADODB.recordset")
sql = "SELECT * FROM proveedores WHERE rut_pro = " + Replace(tabla__MMColParam2, "'", "''") + ""
tabla.Open sql, oConn

gracias a todos los que me ayudaron

PERO ME SURGIO UN NUEVO PROBLEMA

como ven la variable rut_pro es numerico.
cuando me ingresan datos de tipo texto se cae,
como lo valido antes de que me haga el select, o sea que si no es numerico me mande un responde.redirect("ingrese_un_numerico.asp")
espero sus respuestas...
__________________
Saludos
Miguel Angel
<[email protected]>
  #9 (permalink)  
Antiguo 18/12/2002, 08:36
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 23 años, 5 meses
Puntos: 0
lo ideal es que esas validaciones las hagas con codigo cliente (vbscript ó javascript)... para no sobrecargar el servidor y no tener que refrescar la pagina.

si buscas en el google validaciones numericas encontraras muchos ejemplos
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 14:21.