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

Problema con funcion CINT vacia

Estas en el tema de Problema con funcion CINT vacia en el foro de ASP Clásico en Foros del Web. Hola, tengo un problema con la funcion cint, cuando no recibe nada me da error: Microsoft VBScript runtime error '800a005e' Invalid use of Null: 'cint' ...
  #1 (permalink)  
Antiguo 24/08/2010, 08:11
 
Fecha de Ingreso: noviembre-2007
Mensajes: 504
Antigüedad: 16 años, 6 meses
Puntos: 2
Problema con funcion CINT vacia

Hola, tengo un problema con la funcion cint, cuando no recibe nada me da error:
Microsoft VBScript runtime error '800a005e'

Invalid use of Null: 'cint'

/Mes/Asp/was2/more2.asp, line 258

quisieras saber si hay alguna forma de evitar que muestre este error y mostrar un mensaje de que no se recibio nada, mi codigo es:
Código ASP:
Ver original
  1. SET conexion2=Server.CreateObject("ADODB.Connection")
  2.             conexion2.Open "PROVIDER=SQLOLEDB; DATA SOURCE=VALP-MAPLE01;UID=sa;PWD=messrv;DATABASE=wasp "
  3.             SET registros2=Server.CreateObject("ADODB.RecordSet")
  4.        
  5.         registros2.open"SELECT AVG(PESO)as peso from pesos where fecha Between '"&calendar1&"' AND '"&calendar2&"'AND hora='"&hora&"' AND codoptima='"&codoptima&"'",conexion2
  6.         do while not registros2.eof
  7.         c=cint(registros2.fields("peso"))
  8.         'b=(a-c)/a
  9.         b=(c-a)/a
  10.         response.write("Promedio: <b>"&registros2.fields("peso")&"</b><br>")
  11.     '############## Aritmetica ####################
Saludos
  #2 (permalink)  
Antiguo 24/08/2010, 09:16
 
Fecha de Ingreso: agosto-2010
Mensajes: 25
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Problema con funcion CINT vacia

Hola!!
Porque no miras primero si es un nulo ejemplo
if registros2.fields("peso") = "" then
c=0
else
c=cint(registros2.fields("peso")
end if
Un saludo
  #3 (permalink)  
Antiguo 24/08/2010, 09:23
 
Fecha de Ingreso: noviembre-2007
Mensajes: 504
Antigüedad: 16 años, 6 meses
Puntos: 2
Respuesta: Problema con funcion CINT vacia

Hola lo dejo asi y me sigue dando error:
Microsoft VBScript runtime error '800a005e'

Invalid use of Null: 'cint'


Código ASP:
Ver original
  1. 'SELECT p.peso,p.tubo,p.fecha, o.linea FROM pesos as p, optimas as o where o.codigo = p.codOptima and o.linea = 'L02N'  AND p.fecha Between '2010-05-11 09:42:34.000' AND '2010-05-11 09:42:39.000'
  2.             SET conexion2=Server.CreateObject("ADODB.Connection")
  3.             conexion2.Open "PROVIDER=SQLOLEDB; DATA SOURCE=VALP-MAPLE01;UID=sa;PWD=messrv;DATABASE=wasp "
  4.             SET registros2=Server.CreateObject("ADODB.RecordSet")
  5.        
  6.         registros2.open"SELECT AVG(PESO)as peso from pesos where fecha Between '"&calendar1&"' AND '"&calendar2&"'AND hora='"&hora&"' AND codoptima='"&codoptima&"'",conexion2
  7.         do while not registros2.eof
  8.         if registros2.fields("peso")="" then
  9.         c=0
  10.         else
  11.        
  12.         c=cint(registros2.fields("peso"))
  13.         end if
  14.         'b=(a-c)/a
  15.         b=(c-a)/a
  16.         response.write("Promedio: <b>"&registros2.fields("peso")&"</b><br>")
  #4 (permalink)  
Antiguo 24/08/2010, 09:23
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 4 meses
Puntos: 98
Respuesta: Problema con funcion CINT vacia

Cita:
Iniciado por Adriangd7 Ver Mensaje
Hola!!
Porque no miras primero si es un nulo ejemplo
if registros2.fields("peso") = "" then
c=0
else
c=cint(registros2.fields("peso")
end if
Un saludo
La idea es correcta pero solo destacar que nulo y vacio son diferentes tipos de datos:

if isNull(registros2.fields("peso")) then

if registros2.fields("peso") = "" then


Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #5 (permalink)  
Antiguo 24/08/2010, 09:27
 
Fecha de Ingreso: agosto-2010
Mensajes: 25
Antigüedad: 13 años, 8 meses
Puntos: 0
Respuesta: Problema con funcion CINT vacia

th3r0rn az como dice u_goldman, que se me habia olvidado antes ponerte lo del null xD
if isNull(registros2.fields("peso")) or registros2.fields("peso") = "" then
Un saludo
  #6 (permalink)  
Antiguo 24/08/2010, 10:52
 
Fecha de Ingreso: noviembre-2007
Mensajes: 504
Antigüedad: 16 años, 6 meses
Puntos: 2
Respuesta: Problema con funcion CINT vacia

Hola, eso no funciona por que despues de asignarle 0 a C luego le asigno el valor de registros2.fields a c:
Microsoft VBScript runtime error '800a005e'

Invalid use of Null: 'cint'
Código ASP:
Ver original
  1. 'SELECT p.peso,p.tubo,p.fecha, o.linea FROM pesos as p, optimas as o where o.codigo = p.codOptima and o.linea = 'L02N'  AND p.fecha Between '2010-05-11 09:42:34.000' AND '2010-05-11 09:42:39.000'
  2.             SET conexion2=Server.CreateObject("ADODB.Connection")
  3.             conexion2.Open "PROVIDER=SQLOLEDB; DATA SOURCE=VALP-MAPLE01;UID=sa;PWD=messrv;DATABASE=wasp "
  4.             SET registros2=Server.CreateObject("ADODB.RecordSet")
  5.        
  6.         registros2.open"SELECT AVG(PESO)as peso from pesos where fecha Between '"&calendar1&"' AND '"&calendar2&"'AND hora='"&hora&"' AND codoptima='"&codoptima&"'",conexion2
  7.         do while not registros2.eof
  8.         if isNull(registros2.fields("peso")) then
  9.         c=0
  10.         end if
  11.        
  12.        
  13.         c=cint(registros2.fields("peso"))
  14.        
  15.         'b=(a-c)/a
  16.         b=(c-a)/a
  17.         response.write("Promedio: <b>"&registros2.fields("peso")&"</b><br>")
  18.     '############## Aritmetica ####################
  19.     ' C = Promedio  WHERE B=(a-c)/a
  20.     ' A = Target
  21.     saving=(c-a)*NumBolsas
  22.     if b<=0 then    response.write(" Op: <b>"&b&"</b><img src='http://www.pact-oil.co.uk/images/error.gif'</a><br>") else response.write(" Op: <b>"&b&"</b><img src='http://www.hospitalsierrallana.com/imagenes/gif_ok.gif'</a><br>")  end if
  23.         response.write("Saving:<b> "&saving/1000&" KG</b>")'DIVIDIR /1000

Hola ya pude, uso response.end para matar la ejecucion del programa y hacer lo que quiera:
Código ASP:
Ver original
  1. 'SELECT p.peso,p.tubo,p.fecha, o.linea FROM pesos as p, optimas as o where o.codigo = p.codOptima and o.linea = 'L02N'  AND p.fecha Between '2010-05-11 09:42:34.000' AND '2010-05-11 09:42:39.000'
  2.             SET conexion2=Server.CreateObject("ADODB.Connection")
  3.             conexion2.Open "PROVIDER=SQLOLEDB; DATA SOURCE=VALP-MAPLE01;UID=sa;PWD=messrv;DATABASE=wasp "
  4.             SET registros2=Server.CreateObject("ADODB.RecordSet")
  5.        
  6.         registros2.open"SELECT AVG(PESO)as peso from pesos where fecha Between '"&calendar1&"' AND '"&calendar2&"'AND hora='"&hora&"' AND codoptima='"&codoptima&"'",conexion2
  7.         do while not registros2.eof
  8.         if isNull(registros2.fields("peso")) then
  9.         c=0
  10.         response.write("<h3>Verifique su consulta, no hay datos en esta corrida</h3>")
  11.         response.end
  12.         end if
Best Regards :)

Última edición por th3r0rn; 24/08/2010 a las 11:32
  #7 (permalink)  
Antiguo 24/08/2010, 14:03
 
Fecha de Ingreso: marzo-2006
Mensajes: 66
Antigüedad: 18 años, 1 mes
Puntos: 0
Respuesta: Problema con funcion CINT vacia

Y si en el SQL hubiera usado ISNULL?
También le sirve amigo?

Etiquetas: funcion, vacias
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 20:07.