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

No me muestra los resultados de la consulta

Estas en el tema de No me muestra los resultados de la consulta en el foro de ASP Clásico en Foros del Web. Mi problema es el siguiente tengo un tabla y la conexion con una bd con dns, y quiero que al ingresar un appellido por ejemplo ...
  #1 (permalink)  
Antiguo 20/05/2005, 19:11
 
Fecha de Ingreso: enero-2005
Ubicación: Tucumán, Argentina
Mensajes: 57
Antigüedad: 19 años, 5 meses
Puntos: 0
No me muestra los resultados de la consulta

Mi problema es el siguiente tengo un tabla y la conexion con una bd con dns, y quiero que al ingresar un appellido por ejemplo me meustra los datos pero solo me muestra la etiquetas de los campos abajo va el codigo donde puede estar el error saludos


<%
Dim consulta__MMColParam
consulta__MMColParam = "1"
If (Request.Form("afiApellido") <> "") Then
consulta__MMColParam = Request.Form("afiApellido")
End If
%>
<%
Dim consulta
Dim consulta_numRows

Set consulta = Server.CreateObject("ADODB.Recordset")
consulta.ActiveConnection = MM_coneccion3_STRING
consulta.Source = "SELECT afiApellido, afiNombre, afiTipoDoc, afiDNI, Activo FROM SMIAfiliados WHERE afiApellido = '" + Replace(consulta__MMColParam, "'", "''") + "'"
consulta.CursorType = 0
consulta.CursorLocation = 2
consulta.LockType = 1
consulta.Open()

consulta_numRows = 0
%>
<%
Dim Repeat1__numRows
Dim Repeat1__index

Repeat1__numRows = 10
Repeat1__index = 0
consulta_numRows = consulta_numRows + Repeat1__numRows
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Documento sin t&iacute;tulo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body>
<table border="1">
<tr>
<td>Apellido</td>
<td>Nombre</td>
<td>Tipo de Documento </td>
<td>Numero</td>
<td>Activo</td>
</tr>
<% While ((Repeat1__numRows <> 0) AND (NOT consulta.EOF)) %>
<tr>
<td><%=(consulta.Fields.Item("afiApellido").Value) %></td>
<td><%=(consulta.Fields.Item("afiNombre").Value)%> </td>
<td><%=(consulta.Fields.Item("afiTipoDoc").Value)% ></td>
<td><%=(consulta.Fields.Item("afiDNI").Value)%></td>
<td><%=(consulta.Fields.Item("Activo").Value)%></td>
</tr>
<%
Repeat1__index=Repeat1__index+1
Repeat1__numRows=Repeat1__numRows-1
consulta.MoveNext()
Wend
%>
</table>
</body>
</html>
<%
consulta.Close()
Set consulta = Nothing
%>
  #2 (permalink)  
Antiguo 20/05/2005, 20:14
 
Fecha de Ingreso: marzo-2005
Mensajes: 1.418
Antigüedad: 19 años, 2 meses
Puntos: 9
Lo que yo veo son dos cosas. Primero la cadena de consulta SQL está mal elaborada, más precisamente lo que está mal es la parte de la concatenación, se utiliza el simbolo & en lugar de +. Lo segundo es que no estoy seguro si el replace que haces puede funcionar bien. Yo siempre prefiero guardar en una variable la cadena que resulta del replace y de ahí la utilizas para lo que sea. Algo así:

If (Request.Form("afiApellido") <> "") Then
consulta__MMColParam = Replace(Request.Form("afiApellido"),"'","''")
End If

Y la cadena de consulta te quedaría algo como esto:

"SELECT afiApellido, afiNombre, afiTipoDoc, afiDNI, Activo FROM SMIAfiliados WHERE afiApellido = '"&consulta_MMColParam&"'"

Otra cosa, no hace falta escribir esta linea tan larga (consulta.Fields.Item("afiApellido").Value) para sacar el valor de la base de datos de ese campo, siemplemente haciendo consulta("afiApellido") ya estarías obteniendo el mismo resultado. Pero obviamente eso corre por cuenta de cada uno, mientras que tu creas que es prolijo y lo más explicativo de lo que estás haciendo.
Espero que con esos cambios te funcione. Saludos.
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 23:32.