Consulta sobre código de web implementada con asp para mostrar registros de base de datos

Soy un joven mexicano que se encuentra iniciando en este rollo de desarrollar páginas ASP, y mi pregunta es la siguiente.
Mira lo que pasa es que me encuentro desarrollando unas páginas en las que se pueda consultar el currículo de algunos funcionarios de donde trabajo y ya elabore la primera página asp en donde aparecen los nombes de cada uno de los funcionarios, para hacer esto hice la página y le inserte un formulario que llene con los nombres de los funcionarios que provienen de una tabla de base de datos, el código que use fue el siguiente:
<%
Dim ObjConn
set ObjConn=Server.CreateObject("ADODB.Connection")
ObjConn.ConnectionString="DSN=gabinete"
Objconn.Open
Dim ObjRs
Set ObjRs=Server.CreateObject("ADODB.Recordset")
ObjRs.Open "funcionarios", Objconn
%>
<center><b>Por Nombre</b></center>
<center><form method=post action="perfil.asp">
<select name="Nombre">
<%Do while not ObjRs.EOF%>
<%response.Write "<Option value=" & ObjRs("Nombre_funcionario")
response.Write ">" & ObjRs("Nombre_funcionario")
ObjRs.Movenext
Loop
ObjRs.close
set ObjRs=Nothing
ObjConn.close
set Objconn=Nothing
%>
</select>
Y la segunda página que es la que se supone debe desplegar la información del funcionario no me funciona, ¿Me podrías decir que estoy haciendo mal, por que lo que parece es que no estoy escribiendo bien la parte en la que se selecciona a algún funcionario a través de una instrucción sql, ya que lo hago y no aparece ningún dato, el código que al parecer esta funcionando mal es el siguiente:
<%
Dim ObjConn
set ObjConn=Server.CreateObject("ADODB.Connection")
ObjConn.ConnectionString="DSN=gabinete"
Objconn.Open
xnombre=request.form ("Nombre")
Dim strSQL
strSQL= "SELECT * FROM funcionarios WHERE Nombre_funcionario = '%"&xnombre&"%'; "
Dim ObjRs
Set ObjRs=Server.CreateObject("ADODB.Recordset")
ObjRs.Open strSQL, Objconn
Do while not ObjRs.EOF%>
<p align="justify">
<%Response.write "<justify><b>" & ObjRs("Nombre_funcionario") & "</b><br></justify>"
Response.write "<justify>" & ObjRS("Cargo") & "<br><br></justify>"
Response.write "<justify>" & ObjRS("Datos_generales") & "<br><br></justify>"
Response.write "<justify>" & ObjRS("Estudios") & "<br><br></justify>"
Response.write "<justify>" & ObjRS("Carg_admvos") & "<br><br></justify>"
Response.write "<justify>" & ObjRS("Activ_polit") & "<br><br></justify>"
Response.write "<justify>" & ObjRS("Otras_acts") & "<br><br><br></justify>"
Objrs.movenext
Al parecer, no se, lo que estoy escribiendo mal es la instrucción sql
strSQL= "SELECT * FROM funcionarios WHERE Nombre_funcionario = '%"&xnombre&"%'; "
¿Me podrías decir si lo estoy haciendo bien o que debo hacer?.
4

4 respuestas

Respuesta
1
Si el error es en la instrucción del SQL quítale el ";"
Si tienes otra duda no dudes en preguntarme
Respuesta
1
Prueba la instrucción de select en el ACCESS o en el terminal de la base de datos que utilices
es la mejor forma de saber si lo estas escribiendo mal
No entiendo lo de los % dentro de la query., En teoría no tendrían que estar..
Respuesta
1
Siento no haber respondido antes, no recibí ningún aviso por email de que tenia una pregunta, lo siento.
Le he hechao un vistazo rapido, sin fijarme mucho pero resalta rápidamente un error en la consulta SQL.
Deberia quedar asi:
strSQL = "SELECT * FROM funcionarios WHERE Nombre_funcionario like '%" & xnombre & "%' "
Si utilizamos el "=" estamos buscando en la base de datos el nombre "%Juan Andres%" mientras que si utilizamos "like" es cuando se van a aplicar las reglas de los filtros tales como "%". Para más información puedes consultar la ayuda..
Sustituye el "=" por el "like" y funcionara, sino no encontrara nunca nada.
Un saludo. Víctor
Respuesta
1
Perdón por no haberte contestado antes, he estado ausente de mi trabajo y no he podido hacerlo, el problema que tienes tiene una fácil solución, lo único que tienes que hacer es cambiar el = de la sql que no te funciona y poder la palabra LIKE
Muchas gracias, es una buena respuesta.
Pero que pasa si quiero que en la instrucción SQL me indique un solo registro de mi tabla en la que tengo información.
O cuando puedo utilizar la expresión =
No se si te he entendido bien pero te con esto en base a lo que entiendo y si no te he entendido me escribes de nuevo.
El = lo podrás utilizar siempre que vayas a comparar con una cadena de texto exacta, por ejemplo PEDRO GARCÍA. Solo te mostrara aquellos registros que contengan PEDRO GARCÍA y solo eso en el campo seleccionado para la comparación.
Por otro lado, si quieres que solo te salga un registro en la consulta aunque haya varios tienes que poner TOP 1 justo después de la palabra SELECT y así solo te mostrara el primero que encuentre.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas