Comparacion If en ASP

Disculpen que vuelva a molestar pero tengo un problema y no se a que se debe.
Estoy haciendo una comparación donde tomo de un select el valor y esta lo comparo con una variable de session:
metros=""&session("Metros")&""
IF ("&suma&") <= ("&metros&") then
Response.Write "Entra valor 1"
x=1
Else
x=2
Response.Write "Entra valor 2"
End If
session("X")=""&x&""
El select lo tengo:
SQL= "SELECT SUM(tl_cantidad)AS suma FROM Inventario where tl_codigo='"&codigo&"'"
set RS= O_Conn.execute(SQL)
suma=RS("suma")
y la session solo toma el valor que dan cuando lo pido de un cuadro de texto:
session("Metros")=Request.Form("t_total")%>
El problema que tengo es que no hace mi comparación siempre entra a la primer opción siempre me imprime uno, comparo si la cantidad que me dieron en el cuadro es menor a la suma de lo que se tiene se supone que tiene que cambiar mi mensaje pero no lo hace, alguien por favor me podría decir que tengo mal...

1 respuesta

Respuesta
1
¿Estas seguro de que lo que comparas son enteros? Si utilizas el comparador <= entre 2 variables, estas deben ser enteros, cosa un poco dificil si las fuerzas a ser cadenas.
Si el valor de suma es por ejemplo 45, al hacer (""&suma"") suma ya no vale 45 sino que es la cadena "45". De todas maneras y suponiendo que no estén esas comillas y '&' lo que deberías hacer es imprimir por pantalla los valores reales que tienen esas variables y saldrás de dudas.
Disculpa que no haya agradecido tu ayuda pero si estoy segura que comparo con enteros ya cambie la forma de comparar y aun así solo entra aúna opción:
SQL= "SELECT SUM(tl_cantidad)AS suma FROM Inventario where tl_codigo='"&codigo&"'"
set RS= O_Conn.execute(SQL)
suma2=RS("suma")
suma1=session("Metros")
If suma2 < val suma1 then
Response.Write "Si es menor"
Else
Response.Write "No es mayor"
End if
Pero aun así solo entra a la primer opción, realizo un select y este valor lo paso a una variable, de la misma forma tomo de una variable de ssesion, tomo su valor y la paso a una variable.
¿Me podrías explicar que estoy haciendo mal?..
Gracias por tu ayuda y disculpa tanta lata...
Erika
Pues parece que lo haces todo correctamente, pero por eso mismolo único que puede pasar es que alguna de las 2 variables no sea entera pues si las 2 fueran enteras el if funcionaria bien.
Prueba a forzar a las 2 a enteros o doubles según si hay decimales o no
Por ejemplo
suma2 = Cdbl(suma2)
suma1 = cdbl(suma1)
Si haciendo esto no genera un error y siempre entra en la primera opción a lo mejor es que la suma que sacas de la base de datos o la de metros por alguna razón siempre es menor que la otra.
Cuando me pasa esto siempre imprimo el valor de las 2 variables antes de entrar en el if y así estoy seguro de su valor.
Disculpa que apenas te responda pero hice pruebas así como me dijiste y ya logre que entrar al If en mi comparación, yo solo forzaba una de las dos variables a CDbl por eso no entraba. Te agradezco mucho tu atención y tu ayuda, me sirvió de mucho, espero cuando me vuelva a surgir una duda me puedas asesorar, muchas gracias!.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas