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

Ayuda - Error en construcción sentencia de consulta sql

Estas en el tema de Ayuda - Error en construcción sentencia de consulta sql en el foro de ASP Clásico en Foros del Web. Hola a todos: Tengo un pequeño gran problema con una sentencia sql. A ver si pueden ayudarme a resolverlo. La cosa es como sigue: El ...
  #1 (permalink)  
Antiguo 29/05/2004, 11:42
 
Fecha de Ingreso: junio-2003
Ubicación: Santiago de Compostela
Mensajes: 603
Antigüedad: 21 años, 11 meses
Puntos: 0
Ayuda - Error en construcción sentencia de consulta sql

Hola a todos:
Tengo un pequeño gran problema con una sentencia sql. A ver si pueden ayudarme a resolverlo. La cosa es como sigue:

El código de la conexión es el siguiente:
----------------------------------------
Set Conn2 = Server.CreateObject ("ADODB.Connection")
Conn2.ConnectionString = "DSN=clubviajesoferta.com.amancio"
Set RS2 = Server.CreateObject ("ADODB.RecordSet")
Conn2.Open
sqltring = "Select * From tallas WHERE id = "& request.form("comboidtalla") &" ORDER BY talla"
RS2.Open sqltring, Conn2
----------------------------------------
Fin del código


La tabla a la que se tiene que conectar se llama tallas y tienes dos campos:
Nombre Tipo
------- -----
id ------- numero
talla----- texto

Lo que pretendo es que el select me devuelva todos los registros de la tabla tallas ordenados por el campo talla, donde el campo id sea igual a la linea que en ese momento me muestra un combo llamado "comboidtalla" del formulario donde va este código.
El problema está en la construcción del propio select pero no consigo, pese al mucho tiempo que le he dedicado, dar con la sintaxis correcta.
A ver si pueden ayudarme.
Gracias

Última edición por ciberpata; 29/05/2004 a las 11:43
  #2 (permalink)  
Antiguo 29/05/2004, 11:53
Avatar de jorel  
Fecha de Ingreso: abril-2003
Ubicación: Monterrey, N.L.
Mensajes: 253
Antigüedad: 22 años, 1 mes
Puntos: 0
se ve bien.... como envias el valor de "comboidtalla"

a ver prueba con like....

like '"&request.form("comboidtalla")&"%'

y tambien intenta agregando la comilla simple... aunque la comilla simple es solo para texto...

sqltring = "Select * From tallas WHERE id like "& request.form("comboidtalla") &" ORDER BY talla"
__________________

:adios:

Jorge Santana
  #3 (permalink)  
Antiguo 29/05/2004, 12:05
 
Fecha de Ingreso: junio-2003
Ubicación: Santiago de Compostela
Mensajes: 603
Antigüedad: 21 años, 11 meses
Puntos: 0
Nada sigue sin funcionar y el problema está en la cadena sql porque si envio una sentencia como esta ya no me da el error (aunque obviamente no hace lo que quiero)
sqlstring="select * from tallas"
Gracias
  #4 (permalink)  
Antiguo 29/05/2004, 15:17
 
Fecha de Ingreso: noviembre-2003
Ubicación: CHile, 8 Region
Mensajes: 68
Antigüedad: 21 años, 6 meses
Puntos: 0
Parece que falta algo...

Parece que te faltan las comillas simples.
........WHERE id = ' "&request.form("datos")&" ' , y lo otro colocale criterio al Orden, ya se ASC (ascendente) o DESC (descendente).
__________________
Around The World
  #5 (permalink)  
Antiguo 31/05/2004, 14:07
 
Fecha de Ingreso: junio-2003
Ubicación: Santiago de Compostela
Mensajes: 603
Antigüedad: 21 años, 11 meses
Puntos: 0
Saludos a todos:
He probado todo lo que me han dicho y más cosas... :(
Entonces solo me queda pasarles todo el código completo a ver si hay alguna otra cosa.
Por cierto no he conseguido simplificar la conexión del segundo recordset y entonces he tenido que abrir otro recordset igual que el anterior para consultar otra tabla que está en la misma base datos. ¿Sabe alguien a qué es debido esto?. Me refiero a que lo normal sería eliminar las lineas siguientes puesto que son redundantes:

Set Conn2 = Server.CreateObject ("ADODB.Connection")
Conn2.ConnectionString = "DSN=clubviajesoferta.com.amancio"

El problema es que no me carga la página porque hay un error en la sentencia:

sqltring = "Select * From tallas WHERE id = "& request.form("comboidtalla") &" ORDER BY talla"

Y francamente yo no lo veo por ninguna parte.


Principio de código
---------------------
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Documento sin t&iacute;tulo</title>
</head>
<!--Incluimos el fichero de constantes-->
<!--#INCLUDE file="../ADOVBS.asp"-->

<%
'Capturamos los datos del formulario
comboidtalla=request.form("comboidtalla")

'Conectamos a la base de datos
set Conn= Server.CreateObject("ADODB.Connection")
Conn.ConnectionString = "DSN=clubviajesoferta.com.amancio"
Conn.open
Set RS=Server.CreateObject("ADODB.Recordset")
RS.activeconnection=Conn
RS.source="tipostalla"
RS.Locktype = adLockOptimistic
RS.CursorType = adOpenDinamic
RS.open
%>

<%
Set Conn2 = Server.CreateObject ("ADODB.Connection")
Conn2.ConnectionString = "DSN=clubviajesoferta.com.amancio"
Set RS2 = Server.CreateObject ("ADODB.RecordSet")
'Conectamos a la conexion a la base de datos.
Conn2.Open
'El problema está en la cadena de conexión sqlstring abajo indicada
sqltring = "Select * From tallas WHERE id = "& request.form("comboidtalla") &" ORDER BY talla"


'Abrimos la tabla pidiendo todos sus registros.
RS2.Open sqltring, Conn2

%>


<body>
<form name="form1" method="post" action="anadir_talla_result.asp">
<table width="30%" border="0">
<tr>
<td width="68%" valign="top">Tallas existentes </td>
<td width="32%"><select name="combotallaexistente" size="5" id="combotallaexistente">
<%
if not (rs.bof and rs.eof) then
rs.movefirst
do while not rs.eof
%>
<option value="<%=rs2("talla")%>"><%=rs2("talla")%></option>
<%
rs.movenext
loop
end if
%>
</select></td>
</tr>
</table>
<p>&nbsp;</p>
<p>Idtalla
<select name="comboidtalla" id="comboidtalla">
<%
if not (rs.bof and rs.eof) then
rs.movefirst
do while not rs.eof
%>
<option value="<%=rs("id")%>"><%=rs("idtalla")%></option>
<%
rs.movenext
loop
end if
%>
</select>
Talla
<input name="talla" type="text" id="talla" size="6" maxlength="6">
</p>
<p>
<input type="submit" name="Submit" value="Agregar talla">
<input type="reset" name="Submit" value="Limpiar pantalla">
</p>
</form>

</body>
<%
'response.Write("pepe" & request.form("select"))
rs.close
conn.close

rs2.close
conn2.close
%>
</html>
-----------------------
Final de código

A ver si pueden ayudarme y gracias a todos
  #6 (permalink)  
Antiguo 31/05/2004, 16:32
 
Fecha de Ingreso: octubre-2003
Ubicación: ***
Mensajes: 152
Antigüedad: 21 años, 6 meses
Puntos: 0
cual es el error q te da¿?
  #7 (permalink)  
Antiguo 31/05/2004, 16:55
 
Fecha de Ingreso: diciembre-2002
Ubicación: Santiago
Mensajes: 87
Antigüedad: 22 años, 4 meses
Puntos: 0
revisa en el body de tus pagina que datos estas usando... me explico, haces un RS, lugo haces la consulta RS2, pero luego verificas los RS.Algo (primera consulta) y te olvidas de la segunda... y entiendo que estas intentando imprimir los datos de RS2...

<td width="32%"><select name="combotallaexistente" size="5" id="combotallaexistente">
<%
if not (rs.bof and rs.eof) then ' aqui deberias revisar RS2? o nada que ver?
rs.movefirst
do while not rs.eof
%>
<option value="<%=rs2("talla")%>"><%=rs2("talla")%></option>
<%
rs.movenext
loop
end if
%>
</select></td>

En realidad revisa todo tu codigo puesto que en realidad aun no se que es RS, si nunca consultaste nada en ese RS... simplemente lo creaste...
__________________
Gigio
  #8 (permalink)  
Antiguo 01/06/2004, 03:06
 
Fecha de Ingreso: abril-2004
Mensajes: 48
Antigüedad: 21 años
Puntos: 0
¿Estás segura que request.form("comboidtalla") te pasa algun dato? Ya que lo asignas a una variable, ¿porqué no la usas? (aunque ese no es el problema).

Para asegurarte, haz que antes de hacer la instruccion sql se compruebe si request.form("comboidtalla") está vacío o no.
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:31.