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

error al llamar a funcion

Estas en el tema de error al llamar a funcion en el foro de ASP Clásico en Foros del Web. hola buneas, la llamada a la funcion es la siguiente: idblog=saber_idblog(titulo_blog)ç creo que esta bien echa, pero me sale el siguiente error,(en la linea donde ...
  #1 (permalink)  
Antiguo 06/09/2007, 00:20
 
Fecha de Ingreso: septiembre-2007
Mensajes: 72
Antigüedad: 17 años, 8 meses
Puntos: 1
error al llamar a funcion

hola buneas, la llamada a la funcion es la siguiente:

idblog=saber_idblog(titulo_blog)ç

creo que esta bien echa, pero me sale el siguiente error,(en la linea donde llamo a la funcion)

Error de Microsoft VBScript en tiempo de ejecución error '800a000d'

No coinciden los tipos: 'saber_idblog'

/Bloggus/asp/crear_aportacion.asp, line 22


la funcion a la que llamo es esta:

<%
function saber_idblog(titulo_blog) ' OBTENER LA ID DEL BLOG, APARTIR DEL TITULO RECOGIDO DEL FORMULARIO Y SI ESE BLOG ES DE DICHO USUARIO
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.Open "bloggus"

sSTR= " select idblog,titulo,idusu from blogs where (titulo="&titulo_blog&");"
Set Rs = Conn.Execute(sSTR)

if not rs.EOF then
id_blog=Rs("idblog")
'Posibilidad de que el blog exista pero no sea del usuario que quiere realizar la aportacion
if Rs("idusu")==session ("usuario")
valido=true
else
valido=false
response.write("<center>NO TIENE PERMISO PARA REALIZAR APORTACIONES EN EL BLOG ESPECIFICADO</center>")
end if
else
id_blog=0
response.write("<center>EL BLOG ESPECIFICADO NO EXISTE</center>")
end if

'cerramos el RecordSet y lo destruimos
Rs.Close
conn.close
Set Rs = Nothing
saber_idblog=id_blog
end function
%>


el include lo hago en la pagina desde la cual llamo a la funcion, y pongo esto

<%
<!-- #INCLUDE virtual = "funciones.asp" -->
....
...
...%>


alguna idea?? gracias, un saludo
  #2 (permalink)  
Antiguo 06/09/2007, 07:40
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Re: error al llamar a funcion

Bueno, al ver tu código, supongo que la linea 22 es el IF, ya que lo tienes como si fuera de javascript, modifícalo de esta forma:
Código:
if Rs("idusu") = session ("usuario") Then
   valido=true
else
   valido=false
   response.write("<center>NO TIENE PERMISO PARA REALIZAR APORTACIONES EN   EL BLOG ESPECIFICADO</center>")
end if

Si te sigue marcando error de tipos, debes hacer un cast explícito a ambos términos, algo como CInt(Rs("idusu")) = CInt(session ("usuario")) así o hazlo según el tipo que corresponda.
Saludos!!
  #3 (permalink)  
Antiguo 06/09/2007, 14:05
 
Fecha de Ingreso: septiembre-2007
Mensajes: 72
Antigüedad: 17 años, 8 meses
Puntos: 1
Re: error al llamar a funcion

no, la linea 22 es donde hace la llmada, la llamada creo ke esta bien, el error estara en la funcion.

no se lo ke es un cast!!! jajaja

si me pudieseis ayudar un poco...
  #4 (permalink)  
Antiguo 06/09/2007, 14:47
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Re: error al llamar a funcion

Cita:
Iniciado por rokiu Ver Mensaje
no, la linea 22 es donde hace la llmada, la llamada creo ke esta bien, el error estara en la funcion.

no se lo ke es un cast!!! jajaja

si me pudieseis ayudar un poco...
Claro!!

Efectivamente tu error esta en la función y creo es donde te mencioné (en la comparación). Haz los cambios que te recomendé y prueba de nuevo, y sobre lo que te mencioné de que, en caso de que volviera a marcar error, hicieras un cast explícito, me refería a que hicieras unas conversión de tipos, con los que tu puse: CInt(Rs("idusu")) = CInt(session ("usuario"))

Prueba y nos dices!!

Saludos
  #5 (permalink)  
Antiguo 06/09/2007, 14:51
 
Fecha de Ingreso: septiembre-2007
Mensajes: 72
Antigüedad: 17 años, 8 meses
Puntos: 1
Re: error al llamar a funcion

mirar, he copiado el contenido de la funcion en la pagina desde la cual la llamo y me funciona perfectamente, cambiando la compracion del if, POR CIERTO SI PONGO 1 '=' NO ME LO ASIGNA???en vez de compararlo? de todas formas e puesto 'not <>', pero es por saberlo.

bien pues si lo vuelvo a poner en la funcion... me da el mismo error. donde hago la conversion de tipos, en la pagina desde la que llamo a la otra, o en la pagina funciones.asp entro de la funcion?
  #6 (permalink)  
Antiguo 06/09/2007, 15:10
Avatar de Myakire
Colaborador
 
Fecha de Ingreso: enero-2002
Ubicación: Centro de la república
Mensajes: 8.849
Antigüedad: 23 años, 3 meses
Puntos: 146
Re: error al llamar a funcion

Veo que estas acostumbrado a la sintaxis de C (C++, javascript, etc), donde el == es comparación.
En vbscript el signo de = es para asignar si no hay una instrucción booleana que espere el resultado (IF, WHILE, FOR, etc), es por ello que debes usar la sintaxis de vbscript correcta: if Rs("idusu") = session ("usuario") Then.

Aunque en tu caso, debe ser: if CInt(Rs("idusu")) = CInt(session ("usuario")) Then para que se comparen dons variables del mismo tipo, en este ejemplo, enteras. Ojo, si Rs("idusu") es nulo, el cast fallará.

Saludos
  #7 (permalink)  
Antiguo 06/09/2007, 15:19
 
Fecha de Ingreso: septiembre-2007
Mensajes: 72
Antigüedad: 17 años, 8 meses
Puntos: 1
Re: error al llamar a funcion

sigue dandome el mismo error.

Rs("idusu") nunca será nulo, ya qu elo compruebo antes, y session("usuario") tampoco, porque este servicio solo se da a usuarios registrados.

¿alguna idea?

gracias de antemano
  #8 (permalink)  
Antiguo 06/09/2007, 15:27
 
Fecha de Ingreso: septiembre-2007
Mensajes: 72
Antigüedad: 17 años, 8 meses
Puntos: 1
Re: error al llamar a funcion

saber_idblog=id_blog
end function
%>

con esto consigo que me devuelva el valor "id_blog" la funcion "saber_idblog"???

puede ser que este aki el error?
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 08:18.