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

Una ayuda con este código

Estas en el tema de Una ayuda con este código en el foro de ASP Clásico en Foros del Web. Amigos, estoy tratando que ingresar un código en una función, pero cuando lo pongo dentro de la función, no hace lo mismo.. Me explico mejor: ...
  #1 (permalink)  
Antiguo 13/11/2008, 13:39
Avatar de fenix4  
Fecha de Ingreso: noviembre-2001
Ubicación: Caracas
Mensajes: 226
Antigüedad: 23 años, 5 meses
Puntos: 1
Una ayuda con este código

Amigos, estoy tratando que ingresar un código en una función, pero cuando lo pongo dentro de la función, no hace lo mismo..

Me explico mejor: La idea de este código es verificar los registros de unas tablas, y cuando no tenga registro o no consiga la tabla debe dar un error, en este caso también tiene un sonido. Pero al transformar el código en función, muestra los registros, lo único que no hace es que si no consigue los registros debería dar un error, pero esta parte no funciona.

Es más debería imprimir por lo menos "-->" osea la variable vacia pero no lo hace.

ayuda que en verdad tengo rato buscando el error y no lo consigo.

Código:
<!--#include virtual="Connections/ccnpg_web.asp"-->
<%
FUNCTION ver_objeto()
	Msg1= "<SPAN class=tAlertNorm >No se encontro el objeto </SPAN>"
	Msg2=" Registros fueron encontrados "
	SoundAlerta = "<embed src=/sound/alerta.wav autostart=true hidden=true loop=4 >"
	sql = "SELECT id FROM VwSys_areaconocimiento"
	objeto = "Areas"
	
	set Rs = Server.CreateObject("ADODB.Recordset")	
	Rs.CursorType=1
	
	Msg ="-->"	
	Rs.Open sql, conn 	
	if Rs.EOF then
		Msg = SoundAlerta+Msg1 ' Mensaje error		
	ELSE
		Msg="<b>"&Rs.RecordCount&"</b>"&Msg2 ' mensaje OK
	end if
	Rs.close		
	ver_objeto = "<br>"+objeto&": "+Msg
	'response.write  "<br>"+Icon+" "+objeto&": "+Msg
	
END FUNCTION	
response.write ver_objeto
	
%>
__________________
S.L.P.S.
  #2 (permalink)  
Antiguo 13/11/2008, 15:49
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
Respuesta: Una ayuda con este código

Si le quitas lo del recordSet funciona como debe, así que el problema debe ser ahí, quizá no tienes el objeto de conexión y tienes un On Error que te evite que te truene el programa.

No vamos a comentar que esa función no es muy ortodoxa que digamos
  #3 (permalink)  
Antiguo 14/11/2008, 08:45
Avatar de fenix4  
Fecha de Ingreso: noviembre-2001
Ubicación: Caracas
Mensajes: 226
Antigüedad: 23 años, 5 meses
Puntos: 1
Respuesta: Una ayuda con este código

aquí esta la conexión!! pero no entiendo que es lo que debo quitar?? podrían explicar mejor??

Código:
<%
set conn=server.createObject("adodb.connection")

On Error resume next

servername = "ctsi-tech-sv001.cnu.gov.ve" 
db = "ccnpg_test"	

conn.open "DRIVER={SQL Server};SERVER="+servername+";DATABASE="+db+";UID=usuario;PWD=contrasena"

MM_Intranet_STRING = conn
%>
Así funciona de maravilla!!! pero cuando des comento la función, y debería entrar en mensaje error, no lo hace.. ayuda ya no se que probar!!!

Código:
<%
'FUNCTION ver_objeto()
	Msg1= "<SPAN class=tAlertNorm >No se encontro el objeto </SPAN>"
	Msg2=" Registros fueron encontrados "
	SoundAlerta = "<embed src=/sound/alerta.wav autostart=true hidden=true loop=4 >"
	sql = "SELECT id FROM VwSys_instituciones"
	objeto = "Areas"
	
	set Rs = Server.CreateObject("ADODB.Recordset")	
	Rs.CursorType=1
	
	Msg ="-->"	
	Rs.Open sql, conn 	
	if Rs.EOF then
		Msg = SoundAlerta+Msg1 ' Mensaje error				
	ELSE
		Msg="<b>"&Rs.RecordCount&"</b>"&Msg2 'Mensaje OK
	end if
	Rs.close		
	ver_objeto = "<br>"+objeto&": "+Msg
	'response.write  "<br>"+Icon+" "+objeto&": "+Msg
	
'END FUNCTION	
response.write ver_objeto
	
%>
__________________
S.L.P.S.
  #4 (permalink)  
Antiguo 14/11/2008, 11:03
Avatar de AlZuwaga
Colaborador
 
Fecha de Ingreso: febrero-2001
Ubicación: 34.517 S, 58.500 O
Mensajes: 14.550
Antigüedad: 24 años, 2 meses
Puntos: 535
Respuesta: Una ayuda con este código

Hummm... así, adivinando... poné DIM conn antes de set conn=server.create...
__________________
...___...
  #5 (permalink)  
Antiguo 14/11/2008, 12:17
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 4 meses
Puntos: 98
Respuesta: Una ayuda con este código

Cita:
Iniciado por fenix4 Ver Mensaje
aquí esta la conexión!! pero no entiendo que es lo que debo quitar?? podrían explicar mejor??

Código:
<%
set conn=server.createObject("adodb.connection")

On Error resume next

servername = "ctsi-tech-sv001.cnu.gov.ve" 
db = "ccnpg_test"	

conn.open "DRIVER={SQL Server};SERVER="+servername+";DATABASE="+db+";UID=usuario;PWD=contrasena"

MM_Intranet_STRING = conn
%>
Así funciona de maravilla!!! pero cuando des comento la función, y debería entrar en mensaje error, no lo hace.. ayuda ya no se que probar!!!

Código:
<%
'FUNCTION ver_objeto()
	Msg1= "<SPAN class=tAlertNorm >No se encontro el objeto </SPAN>"
	Msg2=" Registros fueron encontrados "
	SoundAlerta = "<embed src=/sound/alerta.wav autostart=true hidden=true loop=4 >"
	sql = "SELECT id FROM VwSys_instituciones"
	objeto = "Areas"
	
	set Rs = Server.CreateObject("ADODB.Recordset")	
	Rs.CursorType=1
	
	Msg ="-->"	
	Rs.Open sql, conn 	
	if Rs.EOF then
		Msg = SoundAlerta+Msg1 ' Mensaje error				
	ELSE
		Msg="<b>"&Rs.RecordCount&"</b>"&Msg2 'Mensaje OK
	end if
	Rs.close		
	ver_objeto = "<br>"+objeto&": "+Msg
	'response.write  "<br>"+Icon+" "+objeto&": "+Msg
	
'END FUNCTION	
response.write ver_objeto
	
%>
Lo único que alcanzo a ver es que en la función no tienes el error handler, cosa que si pasa en en el código que no está dentro de la función, por lo tanto, ma prece que ninguno de los dos funcionan, solamente que en el primer código, estás escondiendo el error y en la función no lo haces así, s i nos das el error que te envía creo que podremos ayudarte mejor.

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #6 (permalink)  
Antiguo 14/11/2008, 13:57
 
Fecha de Ingreso: marzo-2006
Mensajes: 66
Antigüedad: 19 años, 1 mes
Puntos: 0
Respuesta: Una ayuda con este código

un simple comentario :
vi que buscas un error, y justo tienes una linea que me carga, ya que te deja "pagando"
justamente en este tipo de casos, has probado deshabilitándola?

la linea de...

"On Error resume next"


saludos
  #7 (permalink)  
Antiguo 14/11/2008, 15:18
Avatar de fenix4  
Fecha de Ingreso: noviembre-2001
Ubicación: Caracas
Mensajes: 226
Antigüedad: 23 años, 5 meses
Puntos: 1
Respuesta: Una ayuda con este código

Gracias a todos por los aportes..

Al Zuwaga: Cree la variable con Dim conn pero no hay diferencia

comente la línea "On Error resume next"

y me da el siguiente error:

Microsoft OLE DB Provider for ODBC Drivers error '80040e21'

ODBC driver does not support the requested properties.

/monitor2/codigo.asp, line 22


La línea 22 es --> Rs.Open sql, conn

Nota: u_goldman cuando descomento "On Error resume next" me da error con las dos.

Código:
<%
DIM conn
set conn=server.createObject("adodb.connection")

'On Error resume next
servername = "ctsi-tech-sv001.cnu.gov.ve" 
db = "ccnpg_test"	
conn.open "DRIVER={SQL Server};SERVER="+servername+";DATABASE="+db+";UID=user_ccnpg_web;PWD=ucw531_l"
MM_Intranet_STRING = conn

'FUNCTION ver_objeto()
	Msg1= "<SPAN class=tAlertNorm >No se encontro el objeto </SPAN>"
	Msg2=" Registros fueron encontrados "
	SoundAlerta = "<embed src=/sound/alerta.wav autostart=true hidden=true loop=4 >"
	sql = "SELECT id FROM VwSys_instituciones"
	objeto = "Areas"
	
	set Rs = Server.CreateObject("ADODB.Recordset")	
	Rs.CursorType=1
	
	Msg ="-->"	
	Rs.Open sql, conn 	
	if Rs.EOF then
		Msg = SoundAlerta+Msg1	' Mensaje error	
	ELSE
		Msg="<b>"&Rs.RecordCount&"</b>"&Msg2 ' Mensaje OK
	end if
	Rs.close		
	ver_objeto = "<br>"+objeto&": "+Msg
	
'END FUNCTION	
response.write ver_objeto	
%>
La idea es capturar el error que genera al tratar de buscar una tabla y no la consiga.. yo lo que hago es contar los registros..
__________________
S.L.P.S.
  #8 (permalink)  
Antiguo 14/11/2008, 15:39
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 23 años, 4 meses
Puntos: 98
Respuesta: Una ayuda con este código

Ok, creo que entonces el error te está diciendo que el driver que utilizas para la conexión no soporta el tipo de cursor y cerrojo definido para el recordset, no estoy muy familiriazado con ese driver, así que te recomendaría tratar:

Código:
RS.Open sql, conn, 3, 3 
Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #9 (permalink)  
Antiguo 17/11/2008, 14:17
Avatar de fenix4  
Fecha de Ingreso: noviembre-2001
Ubicación: Caracas
Mensajes: 226
Antigüedad: 23 años, 5 meses
Puntos: 1
Respuesta: Una ayuda con este código

Amigos creo que resolvimos el problema!!!

Aquí les dejo el código

Código:
<%
DIM conn
set conn=server.createObject("adodb.connection")

On Error resume next
servername = "ctsi-tech-sv001.cnu.gov.ve" 
db = "ccnpg_test"	
conn.open "DRIVER={SQL Server};SERVER="+servername+";DATABASE="+db+";UID=user;PWD=contrasena"
MM_Intranet_STRING = conn

FUNCTION ver_objeto()
	Msg1= "<SPAN class=tAlertNorm >No se encontraron registros </SPAN>"
	Msg2=" Registros fueron encontrados "
	SoundAlerta = "<embed src=/sound/alerta.wav autostart=true hidden=true loop=4 >"
	sql = "SELECT id FROM VwSys_areaconocimiento"
	objeto = "Areas"
	
	set Rs = Server.CreateObject("ADODB.Recordset")	
	Rs.CursorType=1
	
	On Error resume next '<-- agregado se salta la línea en caso de error
	Rs.Open sql, conn,3,3
	
	If Err.Number <> 0 Then '<-- agregado muestra el error en caso de no conectarse
		Msg1= err.number&": "&err.description 
	End If
	
	if Rs.EOF then
		Msg = SoundAlerta+Msg1	' Mensaje error	
	ELSE
		Msg="<b>"&Rs.RecordCount&"</b>"&Msg2 ' Mensaje OK
	end if
	Rs.close		
	ver_objeto = "<br>"+objeto&": "+Msg
	
	
END FUNCTION	
response.write ver_objeto	
%>
Antes de la línea 22 coloque otro On error Resume Next, le agregue la descripción del error al mensaje. Así que si no consigue la tabla o no tiene permisos te da el error. Si no, te da otro mensaje que dice que la tabla no tiene registros...

Gracias a todos, y esperemos que esto le sirva a otro..
__________________
S.L.P.S.
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 04:34.