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

Problemas al Validar EOF and BOF

Estas en el tema de Problemas al Validar EOF and BOF en el foro de ASP Clásico en Foros del Web. Buenas tardes, al que me pudiera ayudar se lo agradezco, estoy teniendo problemas al momento de validar Recordset vacio de mi BD obviamente mediante .EOF ...
  #1 (permalink)  
Antiguo 19/02/2013, 10:52
 
Fecha de Ingreso: febrero-2013
Mensajes: 6
Antigüedad: 11 años, 2 meses
Puntos: 0
Problemas al Validar EOF and BOF

Buenas tardes, al que me pudiera ayudar se lo agradezco, estoy teniendo problemas al momento de validar Recordset vacio de mi BD obviamente mediante .EOF y .BOF, al momento de ejecutar me arroja:

Error de Microsoft VBScript en tiempo de ejecución (0x800A01A8)
Se requiere un objeto: ''


Aca les expongo mi codigo:

<%
Dim consulta_regcliente__MMColParam
consulta_regcliente__MMColParam = "1"
If (Request.QueryString("ci") <> "") Then
consulta_regcliente__MMColParam = Request.QueryString("ci")
End If
%>
<%
Dim consulta_regcliente
Dim consulta_regcliente_cmd
Dim consulta_regcliente_numRows

Set consulta_regcliente_cmd = Server.CreateObject ("ADODB.Command")
consulta_regcliente_cmd.ActiveConnection = MM_bdviccell_STRING
consulta_regcliente_cmd.CommandText = "SELECT * FROM clientes WHERE ci = '" & Request.Form("ci") & "'"
consulta_regcliente_cmd.Prepared = true
consulta_regcliente_cmd.Parameters.Append consulta_regcliente_cmd.CreateParameter("param1", 200, 1, 255, consulta_regcliente__MMColParam) ' adVarChar

If consulta_regcliente.BOF = False And consulta_regcliente.EOF = False Then <-- acá la linea que indica el error
Set consulta_regcliente = consulta_regcliente_cmd.Execute(consulta_regclient e)
consulta_regcliente_numRows = 0

Else
%>

<SCRIPT LANGUAGE="JavaScript">
alert("NO HAY REGISTRO");
document.location=("src_cliente.asp");
</SCRIPT>
<% End If %>


El objetivo es que al momento de realizar una consulta y el recordset se encuentre vacio arroje el alert que indique que "NO HAY REGISTRO" y redireccione a mi "src_cliente.asp".

Muchas gracias por la ayuda.
  #2 (permalink)  
Antiguo 19/02/2013, 14:00
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 4 meses
Puntos: 98
Respuesta: Problemas al Validar EOF and BOF

Nunca creas un recordset, necesitas hacer algo como:

Código ASP:
Ver original
  1. .
  2. .
  3. .
  4. consulta_regcliente_cmd.Prepared = true
  5. consulta_regcliente_cmd.Parameters.Append consulta_regcliente_cmd.CreateParameter("param1", 200, 1, 255, consulta_regcliente__MMColParam) ' adVarChar
  6.  
  7. 'Crea objeto recordset
  8. Set consulta_regcliente = consulta_regcliente_cmd.Execute
  9.  
  10. 'Consulta si es EOF
  11. if consulta_regcliente.EOF then
  12. .
  13. .
  14. .

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #3 (permalink)  
Antiguo 20/02/2013, 07:37
 
Fecha de Ingreso: febrero-2013
Mensajes: 6
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Problemas al Validar EOF and BOF

Hola u_goldman,

Justo la creacion del objeto recordset esta debajo de la linea donde se comprueba si el recordset esta vacio.

If consulta_regcliente.BOF = False And consulta_regcliente.EOF = False Then
Set consulta_regcliente = consulta_regcliente_cmd.Execute(consulta_regclient e)
consulta_regcliente_numRows = 0

Muchas gracias por tomarte la molestia de reponder a mi caso.
  #4 (permalink)  
Antiguo 20/02/2013, 10:51
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 4 meses
Puntos: 98
Respuesta: Problemas al Validar EOF and BOF

Cita:
Iniciado por Lisandroaa Ver Mensaje
Hola u_goldman,

Justo la creacion del objeto recordset esta debajo de la linea donde se comprueba si el recordset esta vacio.

If consulta_regcliente.BOF = False And consulta_regcliente.EOF = False Then
Set consulta_regcliente = consulta_regcliente_cmd.Execute(consulta_regclient e)
consulta_regcliente_numRows = 0

Muchas gracias por tomarte la molestia de reponder a mi caso.
Lisandroaa, ese es precisamente mi punto, no puedes evaluar un objeto (en este caso el recordset) que no haya sido creado. Necesitas crearlo y despues evaluarlo, de ahí el error "Se requiere un objeto".

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #5 (permalink)  
Antiguo 20/02/2013, 11:08
 
Fecha de Ingreso: febrero-2013
Mensajes: 6
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Problemas al Validar EOF and BOF

Hola u_goldman, disculpa la insistencia, es solo que me urge resolver este pequeño inconveniente.

Tomando en cuenta tus conocimiento he ajustado el codigo de la manera siguiente:

Set consulta_regcliente = consulta_regcliente_cmd.Execute(consulta_regclient e)
consulta_regcliente_numRows = 0

If consulta_regcliente.EOF Then
%>

<SCRIPT LANGUAGE="JavaScript">
alert("NO HAY REGISTRO");
document.location=("src_cliente.asp");
</SCRIPT>
<% End If %>

Aqui podemos ver la creacion del objeto Recordset, y luego la linea de validacion para evaluarlo, ya no me informa que "que se requiere objeto" pero noto que salta la instruccion y me arroja al refrescar la pagina el Alert JavaScrip que anuncia que no hay registro, lo hago con response write y tampoco funciona, es como que si se saltase la instruccion de la validacion del recordset.

Muchas gracias por la ayuda.
  #6 (permalink)  
Antiguo 20/02/2013, 11:20
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 4 meses
Puntos: 98
Respuesta: Problemas al Validar EOF and BOF

¿Puede ser que tu recordset no esté vacio?

Código ASP:
Ver original
  1. If consulta_regcliente.EOF Then
  2. %>
  3. <SCRIPT LANGUAGE="JavaScript">
  4. alert("NO HAY REGISTRO");
  5. document.location=("src_cliente.asp");
  6. </SCRIPT>
  7. <%else%>
  8. <script>
  9. alert("Si hay registros");
  10. </script>
  11. <% End If %>
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #7 (permalink)  
Antiguo 20/02/2013, 11:27
 
Fecha de Ingreso: febrero-2013
Mensajes: 6
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Problemas al Validar EOF and BOF

Sucede que la pagina no me muestra ni el formulario donde realizo la consulta, una vez actualizando el browser me refleja el Alert de inmediato, no me deja tiepear nada, solo se queda en el Alert, es como que si lo único que interpretara el Browsers es el JavaScript.

Quiere decir, que modificando mi código voy al browser a ver los resultados y boalá lo que me aparece de antemano el Alert JavaScript, no me da opcion de colocar un parametro de busqueda en formulario como para saber si esta funcionando o no.

Gracias
  #8 (permalink)  
Antiguo 20/02/2013, 11:48
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 4 meses
Puntos: 98
Respuesta: Problemas al Validar EOF and BOF

Al parecer tu aplicación debería ser encapsulada en la condición que evalúa si existe o no un parámetro llamado "ci" que llega por URL:

Código ASP:
Ver original
  1. If (Request.QueryString("ci") <> "") Then
  2. consulta_regcliente__MMColParam = Request.QueryString("ci")
  3.  
  4. 'Aqui debe ir el resto de tu codigo de busqueda
  5.  
  6. End If
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway
  #9 (permalink)  
Antiguo 20/02/2013, 11:59
 
Fecha de Ingreso: febrero-2013
Mensajes: 6
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Problemas al Validar EOF and BOF

Asi quedaria el codigo:

<%
Dim consulta_regcliente__MMColParam
consulta_regcliente__MMColParam = "1"
If (Request.Form("ci") <> "") Then
consulta_regcliente__MMColParam = Request.Form("ci")

Dim consulta_regcliente
Dim consulta_regcliente_cmd
Dim consulta_regcliente_numRows

Set consulta_regcliente_cmd = Server.CreateObject ("ADODB.Command")
consulta_regcliente_cmd.ActiveConnection = MM_bdviccell_STRING
consulta_regcliente_cmd.CommandText = "SELECT * FROM regserv WHERE ci = '" & Request.Form("ci") & "'"
consulta_regcliente_cmd.Prepared = true
consulta_regcliente_cmd.Parameters.Append consulta_regcliente_cmd.CreateParameter("param1", 200, 1, 255, consulta_regcliente__MMColParam) ' adVarChar

Set consulta_regcliente = consulta_regcliente_cmd.Execute
consulta_regcliente_numRows = 0
If consulta_regcliente.EOF Then
%>

<SCRIPT LANGUAGE="JavaScript">
alert("NO HAY REGISTRO");
document.location=("src_cliente.asp");
</SCRIPT>
<%else%>
<script>
alert("Si hay registros");
</script>
<%
End If
End If
%>


Ahora me arroja el error:

Error de Microsoft VBScript en tiempo de ejecución (0x800A01A8)
Se requiere un objeto: ''


en la Linea 142, la linea 142 es la siguiente:

<%
consulta_regcliente.Close()
Set consulta_regcliente = Nothing
%>




De verdad que me estoy rompiendo la cabeza :(
  #10 (permalink)  
Antiguo 22/02/2013, 07:38
 
Fecha de Ingreso: febrero-2013
Mensajes: 6
Antigüedad: 11 años, 2 meses
Puntos: 0
Respuesta: Problemas al Validar EOF and BOF

Hola u_goldman, crees que puedes ayudarme a solventar este tema?

Muchas gracias por tu valiosa ayuda.
  #11 (permalink)  
Antiguo 22/02/2013, 23:15
Avatar de u_goldman
Moderador
 
Fecha de Ingreso: enero-2002
Mensajes: 8.031
Antigüedad: 22 años, 4 meses
Puntos: 98
Respuesta: Problemas al Validar EOF and BOF

Código ASP:
Ver original
  1. <%
  2. consulta_regcliente.Close()
  3. Set consulta_regcliente = Nothing
  4. %>

Eso tambien tiene que ir dentro de tu if, de lo contrario la aplicacion esta tratando de cerrar y destruir un objeto que no existe.

Saludos
__________________
"El hombre que ha empezado a vivir seriamente por dentro, empieza a vivir más sencillamente por fuera."
-- Ernest Hemingway

Etiquetas: bd, request
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 14:21.