Ultradev y Asp

Hola, trabajo en SQL, Dreamweaver UD y ASP, todo ello en un servidor IIS 4. Estoy armando un sitio con consultas a la base de datos en SQL, utilizo procedimientos almacenados, para ello cuando un usuario se conecta envía al servidor web los parámetros y este al servidor SQL, el problema radica cuando el set de resultado del servidor SQL viene sin registros la página de respuesta me sale sin nada, a ecepcion de los nombres de los campos.
La idea es poder redireccionar a una página más elaborada y con una respuesta acorde al set de resultado solicitado, en vez que me aparezva sin nado o con algún mensaje en ingles de los que te manda el servidor cuando esta configurado de esa forma.
Espero haber sido claro, gracias de ante mano por tu cooperación.

4 respuestas

Respuesta
1
Cuando el resultado de una consulta es inesperado, en blanco o tiene información NULL, es conviene prevenirlos.
Una técnica es contar el numero de resultados obtenidos en la consulta... Si usas ASP utilizando el Recordset (ADO)lo puedes resolver así:
Digamos que tienes una Conexión a la base de datos que se llama Cnn, y un Recorset que se llame RS
Después de abrir la conexión y ejecutar la consulta SQL, puedes indagar cuantos registros se obtuvieron con
RS. RecordCount
Antes de escribir tu Tabla, puedes hacer una estructura IF ELSE, así
<%
If RS.RecordCount == 0 Then
ResponseWrite("Lo Siento, No hay Registros")
Else
ResponseWrite("Escribo mi Tabla")
Endif
%>
Gracias por tu ayuda, ayudaasp... por tu solución considero que tu nick esta super bien, otros expertos me dieron soluciones, la tuya es nueva y se entiende muy bien... gracias por tu tiempo y gentileza.
Respuesta
1
Pues usa el mismo sistema que usarías para una página restringida.
Es decir si existe el usuario le deja pasar a otra página.
Si no existe la manda para otra.
<%@ Language=VBScript %>
<%Response.Buffer =true%>
<%
Dim oConn,strSQL, objRS
set oConn = server.createobject("adodb.connection")
oConn.open "imperio"
strSQL ="Select * from tabla "
Set objRS = oConn.Execute(strSQL)
'Si devuelve algun registro pues escribes el codigo o le mandas para otra pagina.
if not objRS.eof then
'variable que recoge la pagina a donde la quieres mandar.
pagina="hayregistros.asp"
oConn.Close
set oConn=nothing
else
' Si no devuelve ningun valor
pagina="nohayregistros.asp"
oConn.Close
set oConn=nothing
end if
Response.clear
Response.Redirect pagina
Response.End
%>
Lo que puedes hacer
Es hacer un end if en la página entera y se devuelve un registro pues la página actúa normal
y si no sale un mensaje como que no hay registros. Y listo
Supongo que con esto lo entenderás.
Bueno ya me dirás
Gracias por tu cooperación... es bastante clara y probare como me va, cualquier cosa me comunico de nuevo, felicitaciones por tu capacidad de entregar sin esperar recibir.
Respuesta
1
¿Y cuál es la pregunta?
La pregunta esta en la parte que dice... "La idea es...", pero ya tengo la respuesta de alguien que entendió, gracias por tu preocupación y tiempo.
Respuesta
1
Seguramente estás asignando el resultado del procedimiento almacenado a un objeto recordset. Pues bien, si la propiedad EOF de ese objeto es True tras ejecutar el procedimiento almacenado, querrá decir que no ha habido resultados.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas