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

Búsqueda, Recordset y Update

Estas en el tema de Búsqueda, Recordset y Update en el foro de ASP Clásico en Foros del Web. Como van todos... Va mi caso...Es una base de datos SQL con registros de reclamos. Tengo dos ficheros, uno HTML que contiene un campo donde ...
  #1 (permalink)  
Antiguo 26/09/2003, 13:23
Avatar de domi  
Fecha de Ingreso: septiembre-2003
Ubicación: Bogotá D.C
Mensajes: 61
Antigüedad: 21 años, 8 meses
Puntos: 0
Búsqueda, Recordset y Update

Como van todos... Va mi caso...Es una base de datos SQL con registros de reclamos.

Tengo dos ficheros, uno HTML que contiene un campo donde se ingresa un número de cédula y otro ASP que me muestra el registro que encontró con esa cédula (si existe), otros datos del registro encontrado como teléfono, Número de Solicitud y Detalle. A su vez tiene una área de texto para ingresar una actualización en uno de los campos de la tabla donde consulta la cédula, en este caso se llama Respuesta.

En síntesis es un formulario que busca un registro e ingresa datos a uno de los campos de la tabla del registro encontrado.

Mi problema es que a veces lo hace y a veces no!! el error que arroja cuando no lo hace es el siguiente:

Error Type:
Microsoft VBScript runtime (0x800A01A8)
Object required
/ULocalETB/Aplicaciones/RespServi/prueba.asp, line 218

Ya revisé si podía suceder por que alguno de los campos del recordset es nulo para la cédula ingresada, pero no es eso, todos tienen datos.

No sé que más datos puedan necesitar para poder saber qué pasa....

Agradezco a quien me pueda guiar.

Domi
WebMaster
__________________
¡Que Tengas Suertecita!
  #2 (permalink)  
Antiguo 26/09/2003, 21:09
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 23 años, 5 meses
Puntos: 0
por ke no muestras esas lineas de codigo..en especial la linea 218

saludos
  #3 (permalink)  
Antiguo 27/09/2003, 13:17
Avatar de domi  
Fecha de Ingreso: septiembre-2003
Ubicación: Bogotá D.C
Mensajes: 61
Antigüedad: 21 años, 8 meses
Puntos: 0
oook

subo el código mañana q voy a la oficina gracias.
__________________
¡Que Tengas Suertecita!
  #4 (permalink)  
Antiguo 01/10/2003, 12:02
Avatar de domi  
Fecha de Ingreso: septiembre-2003
Ubicación: Bogotá D.C
Mensajes: 61
Antigüedad: 21 años, 8 meses
Puntos: 0
el error es
* Error Type:
Microsoft VBScript runtime (0x800A01A8)
Object required
/ULocalETB/Aplicaciones/RespServi/prueba.asp, line 218



'Acá comienza el código de la página .asp

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!--#include file="../../../Connections/CallCenter.asp" -->
<%
' *** Edit Operations: declare variables

Dim MM_editAction
Dim MM_abortEdit
Dim MM_editQuery
Dim MM_editCmd

Dim MM_editConnection
Dim MM_editTable
Dim MM_editRedirectUrl
Dim MM_editColumn
Dim MM_recordId

Dim MM_fieldsStr
Dim MM_columnsStr
Dim MM_fields
Dim MM_columns
Dim MM_typeArray
Dim MM_formVal
Dim MM_delim
Dim MM_altVal
Dim MM_emptyVal
Dim MM_i

MM_editAction = CStr(Request.ServerVariables("SCRIPT_NAME"))
If (Request.QueryString <> "") Then
MM_editAction = MM_editAction & "?" & Request.QueryString
End If

' boolean to abort record edit
MM_abortEdit = false

' query string to execute
MM_editQuery = ""
%>
<%
' *** Update Record: set variables

If (CStr(Request("MM_update")) = "form1" And CStr(Request("MM_recordId")) <> "") Then

MM_editConnection = MM_CallCenter_STRING
MM_editTable = "dbo.ServiCenter"
MM_editColumn = "Cedula"
MM_recordId = "'" + Request.Form("MM_recordId") + "'"
MM_editRedirectUrl = "buscarced.html"
MM_fieldsStr = "Respuesta|value"
MM_columnsStr = "Respuesta|',none,''"

' create the MM_fields and MM_columns arrays
MM_fields = Split(MM_fieldsStr, "|")
MM_columns = Split(MM_columnsStr, "|")

' set the form values
For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
MM_fields(MM_i+1) = CStr(Request.Form(MM_fields(MM_i)))
Next

' append the query string to the redirect URL
If (MM_editRedirectUrl <> "" And Request.QueryString <> "") Then
If (InStr(1, MM_editRedirectUrl, "?", vbTextCompare) = 0 And Request.QueryString <> "") Then
MM_editRedirectUrl = MM_editRedirectUrl & "?" & Request.QueryString
Else
MM_editRedirectUrl = MM_editRedirectUrl & "&" & Request.QueryString
End If
End If

End If
%>
<%
' *** Update Record: construct a sql update statement and execute it

If (CStr(Request("MM_update")) <> "" And CStr(Request("MM_recordId")) <> "") Then

' create the sql update statement
MM_editQuery = "update " & MM_editTable & " set "
For MM_i = LBound(MM_fields) To UBound(MM_fields) Step 2
MM_formVal = MM_fields(MM_i+1)
MM_typeArray = Split(MM_columns(MM_i+1),",")
MM_delim = MM_typeArray(0)
If (MM_delim = "none") Then MM_delim = ""
MM_altVal = MM_typeArray(1)
If (MM_altVal = "none") Then MM_altVal = ""
MM_emptyVal = MM_typeArray(2)
If (MM_emptyVal = "none") Then MM_emptyVal = ""
If (MM_formVal = "") Then
MM_formVal = MM_emptyVal
Else
If (MM_altVal <> "") Then
MM_formVal = MM_altVal
ElseIf (MM_delim = "'") Then ' escape quotes
MM_formVal = "'" & Replace(MM_formVal,"'","''") & "'"
Else
MM_formVal = MM_delim + MM_formVal + MM_delim
End If
End If
If (MM_i <> LBound(MM_fields)) Then
MM_editQuery = MM_editQuery & ","
End If
MM_editQuery = MM_editQuery & MM_columns(MM_i) & " = " & MM_formVal
Next
MM_editQuery = MM_editQuery & " where " & MM_editColumn & " = " & MM_recordId

If (Not MM_abortEdit) Then
' execute the update
Set MM_editCmd = Server.CreateObject("ADODB.Command")
MM_editCmd.ActiveConnection = MM_editConnection
MM_editCmd.CommandText = MM_editQuery
MM_editCmd.Execute
MM_editCmd.ActiveConnection.Close

If (MM_editRedirectUrl <> "") Then
Response.Redirect(MM_editRedirectUrl)
End If
End If

End If
%>
<%
Dim Respuesta
Dim Respuesta_numRows

Set Respuesta = Server.CreateObject("ADODB.Recordset")
Respuesta.ActiveConnection = MM_CallCenter_STRING
Respuesta.Source = "Select * From ServiCenter Where Cedula like '%" & UCase(Request("Consulta")) & "%'"
Respuesta.CursorType = 0
Respuesta.CursorLocation = 2
Respuesta.LockType = 1
Respuesta.Open()

Respuesta_numRows = 0
%>
<%
Dim Tabla
Dim Tabla_numRows

Set Tabla = Server.CreateObject("ADODB.Recordset")
Tabla.ActiveConnection = MM_CallCenter_STRING
Tabla.Source = "SELECT * FROM dbo.ServiCenter"
Tabla.CursorType = 0
Tabla.CursorLocation = 2
Tabla.LockType = 1
Tabla.Open()

Tabla_numRows = 0
%>
<html>

<head>
<title>Buscar datos</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"></head>

<body bgcolor="#FFFFFF">
<p><font face="Tahoma" size="2">Resultados obtenidos con <strong><%=Request("Consulta") %></strong></font></p>

<%

Dim Conexion
Set Conexion=Server.CreateObject("adodb.connection")
Set Tabla=Server.CreateObject("adodb.recordset")
Conexion.Open "dsn=Call Center;uid=intranet;pwd=carlosja;"

Dim Temp

Temp="Select * From ServiCenter Where Cedula like '%" & UCase(Request("Consulta")) & "%'"

Tabla.Open Temp, Conexion
If Tabla.BOF And Tabla.EOF Then
%>
<p><font face="Tahoma" size="2">No se ha encontrado ningún registro con la cédula <strong><%=Request("Consulta")%></strong> en la Base de Datos</font></p>


<%
Else
%>
<div align="center"><center>
<table border="1" cellpadding="0" cellspacing="0" width="100%" height="74" bordercolor="#C0C0C0">
<tr bgcolor="#000033">
<td width="22%" height="19"> <p align="center"><font color="#FFFFFF"><strong><font face="Tahoma" size="2">Teléfono</font></strong>
</font></td>
<td width="22%" height="19"> <p align="center"><font color="#FFFFFF"><strong><font face="Tahoma" size="2">Solicitud</font></strong></font></p></td>
<td width="29%" height="19"> <p align="center"><font color="#FFFFFF"><strong><font face="Tahoma" size="2">Detalle</font></strong>
</font></td>
<td width="27%" height="19"> <p align="center"><font color="#FFFFFF"><strong><font face="Tahoma" size="2">Cedula</font></strong></font></p></td>
</tr>
<% While Not Tabla.EOF%>
<tr>
<td width="22%" height="51" bgcolor="#D5F0ED"> <p align="center"><font face="Tahoma" size="2"><%=Tabla.Fields("Telefono")%></font></td>
<td width="22%" height="51" bgcolor="#D5F0ED"> <p align="center"><font face="Tahoma" size="2"><%=Tabla.Fields("NSolicitud")%></font></td>
<td width="29%" height="51" bgcolor="#D5F0ED"> <p align="center"><font face="Tahoma" size="2"><%=Tabla.Fields("Detalle")%></font></td>
<td width="27%" height="51" bgcolor="#D5F0ED"> <p align="center"><font face="Tahoma" size="2"><%=Tabla.Fields("Cedula")%></font></a> </tr>


</table>
<p>&nbsp;</p>
<table width="70%" border="1" cellspacing="3">
<tr>
<td bgcolor="#000033"><font color="#FFFFFF"><strong><font size="2" face="Tahoma">Ingrese
la respuesta para este caso</font></strong></font></td>
</tr>
<tr>
<td bgcolor="#D5F0ED">
<form name="form1" method="POST" action="<%=MM_editAction%>">
<div align="center"> <br>
<table width="90%" border="0">
<tr>
<td><div align="center">
<textarea name="Respuesta" cols="50" rows="5" id="textarea"></textarea>
</div></td>
</tr>
</table>

</div>
<div align="right">
<input type="hidden" name="MM_update" value="form1">
<input type="hidden" name="MM_recordId" value="<%= Respuesta.Fields.Item("Cedula").Value %>">
<input type="submit" name="Submit" value="Ingresar">
</div>
</form></td>
</tr>
</table>

</center></div>
<p align="center"><font face="Tahoma" size="2"><a href="buscarced.html">Buscar
otra C&eacute;dula</a></font></p>
<p align="center"> </p>
</body>
</html>
<%
Respuesta.Close()
Set Respuesta = Nothing
%>
<%
Tabla.MoveNext
Wend


End If
%>


<%
Tabla.Close()
Set Tabla = Nothing
Conexion.Close
%>

'Fin del código

la página de búsqueda es:

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<table width="50%" border="1" align="center">
<tr>
<td height="60">
<form method="Post" action="prueba.asp">
<body bgcolor="#FFFFFF">
<p align="center"><font face="Tahoma" size="2"><b><i><br>
<br>
Ingrese la C&eacute;dula que desea buscar</i></b></font></p>
<p align="center">
<input name="Consulta" type="text" id="Consulta" size="20">

</p>

<p align="center">
<input type="submit" value="Buscar" name="boton1">
<input type="reset" value="Restablecer" name="boton"></form> </td>
</tr>
</table>
<br>
</body>
</html>


'Fin del código


Bueno a quien me pueda ayudar mil gracias
__________________
¡Que Tengas Suertecita!
  #5 (permalink)  
Antiguo 01/10/2003, 12:04
Avatar de domi  
Fecha de Ingreso: septiembre-2003
Ubicación: Bogotá D.C
Mensajes: 61
Antigüedad: 21 años, 8 meses
Puntos: 0
La línea 218 de la que hace mención el error es:

<input type="hidden" name="MM_recordId" value="<%= Respuesta.Fields.Item("Cedula").Value %>">


Gracias
__________________
¡Que Tengas Suertecita!
  #6 (permalink)  
Antiguo 01/10/2003, 12:06
Avatar de domi  
Fecha de Ingreso: septiembre-2003
Ubicación: Bogotá D.C
Mensajes: 61
Antigüedad: 21 años, 8 meses
Puntos: 0
La base de datos se llama Call center, la tabla se llama ServiCenter y los RecordSet se llaman Respuesta y Tabla.
__________________
¡Que Tengas Suertecita!

Última edición por domi; 01/10/2003 a las 12:07
  #7 (permalink)  
Antiguo 01/10/2003, 12:52
Avatar de domi  
Fecha de Ingreso: septiembre-2003
Ubicación: Bogotá D.C
Mensajes: 61
Antigüedad: 21 años, 8 meses
Puntos: 0
Definitivamente falla si alguno de los registros de tabla específicamente para la cédula que busca es nulo...
__________________
¡Que Tengas Suertecita!
  #8 (permalink)  
Antiguo 01/10/2003, 16:58
Avatar de bakanzipp  
Fecha de Ingreso: noviembre-2001
Ubicación: santiago de shilli
Mensajes: 2.554
Antigüedad: 23 años, 5 meses
Puntos: 0
segun lo que veo estas validando contra el recordset Tabla (Tabla.BOF And Tabla.EOF Then) pero ademas estas rescatando informacion del recordset Respuesta...

no deberias validar que no venga vacio ese recordset tambien?
  #9 (permalink)  
Antiguo 01/10/2003, 17:57
Avatar de domi  
Fecha de Ingreso: septiembre-2003
Ubicación: Bogotá D.C
Mensajes: 61
Antigüedad: 21 años, 8 meses
Puntos: 0
Je...si buenísimo-! Gracias!
__________________
¡Que Tengas Suertecita!
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 23:44.