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

Que pasa con este SQL ?

Estas en el tema de Que pasa con este SQL ? en el foro de ASP Clásico en Foros del Web. Hola gente. Estoy haciendo una simple vista en una BD, en el formulario el cliente mete una medida y elige la unidad (metros o pies): ...
  #1 (permalink)  
Antiguo 13/05/2002, 22:00
 
Fecha de Ingreso: enero-2002
Ubicación: Perez Zeledon Costa Rica
Mensajes: 1.009
Antigüedad: 23 años, 4 meses
Puntos: 11
Que pasa con este SQL ?

Hola gente.
Estoy haciendo una simple vista en una BD, en el formulario el cliente mete una medida y elige la unidad (metros o pies):
<TR>
<TD><SMALL>Minimun house size Interior.</SMALL></TD>
<TD><SMALL><INPUT TYPE="TEXT" NAME="sizeI" SIZE="8"></SMALL>
<select NAME="ssizeI" size="1">
<option VALUE="Meters2">Meters2</option>
<option VALUE="Foot2">Foot2</option>
</SELECT></TD>

Tonces lo que elige va la pag que hace la busqueda, es recogido asi:
sSizeI = Request.Form("sizeI")
ssSizeI = Request.Form("ssizeI")

y metidos en el SQL asi:
gsSQL = gsSQL & "SELECT * FROM Auctions WHERE CategoryID = " & SQLVal(iCatID) & " "
If Request.Form("sSizeI")<>"&quo t; then
If ssSizeI= "Meters2" Then
gsSQL = gsSQL & " AND SizeI >= "&SQLVal(sSizeI)&" "
else
gsSQL = gsSQL & " AND SizeI >= "&SQLVal(sSizeI*0.0929)&" "
End If
Else
gsSQL = gsSQL & " AND SizeI >0"
End If

Yo entiendo el codigo asi
If Request.Form("sSizeI")<>"&quo t; then
Si sSizeI esta vacío entonces
If ssSizeI= "Meters2" Then
gsSQL = gsSQL & " AND SizeI >= "&SQLVal(sSizeI)&" "
Si la unidad de medida escogida es metros tonces...
etc.
Pero al ejecutar esta sentencia dejando el campo vacio me responde:
SELECT * FROM Auctions WHERE CategoryID = 15 AND SizeI >= NULL
O sea no me lee la parte donde digo:
Else
gsSQL = gsSQL & " AND SizeI >0"
End If
y al dejar este campo vacio me deberia responder:
AND SizeI > 0

Verdad que si!?
Y por este detalle no me funciona el codigo y lo veo Bien.
Resumiendo:
Quiero que al dejar el campo de medida vacio me lea todo lo existente en ese campo y cuando este lleno lea todos los igual o > que este valor.

Gracias por leer esto, Lo parecio de Verdad y si me responden les estare muy agradecidos! :( :(
  #2 (permalink)  
Antiguo 14/05/2002, 02:36
 
Fecha de Ingreso: abril-2002
Mensajes: 216
Antigüedad: 23 años
Puntos: 0
Re: Que pasa con este SQL ?

Me pasó a mi algo parecido. Eso seguramente es pq se lia con tantos ifs,mi consejo es que utilizes una variable booleana y utilizandola hagas cada if por separado, comentanos q tal ok¿?. suerte. :)
  #3 (permalink)  
Antiguo 15/05/2002, 12:25
 
Fecha de Ingreso: enero-2002
Ubicación: Perez Zeledon Costa Rica
Mensajes: 1.009
Antigüedad: 23 años, 4 meses
Puntos: 11
Re: Que pasa con este SQL ?

Amigos encontre el error. Estaba doblemente recibiendo el form. En la linea
If Request.Form("sSizeI")<>"&quo t; then
Si sSizeI esta vacío entonces
If ssSizeI= "Meters2" Then
gsSQL = gsSQL & " AND SizeI >= "&SQLVal(sSizeI)&"

Debe ser
If sSizeI<>"" then
Si sSizeI esta vacío entonces
If ssSizeI= "Meters2" Then
gsSQL = gsSQL & " AND SizeI >= "&SQLVal(sSizeI)&"
...
sin el request.form por quer ya lo tenia arriba.

Tambien fue necesario meter un valor inicial en la formula al campo sSizeI por que si lo dejaba vacio me dava
SizeI >= NULL
De modo que cuando doy un valor inicial (value=1) en la formula, si se deja vacia este valor 1 va al if y no queda
SizeI >= NULL
quedando
SizeI >= 1

Ok, Jeje. :P ;) :) :) :)
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 16:05.