23 - SELECT (Consulta de uno o varios registros de una tabla - SQL Server) |
Ahora veremos como recuperar algunos registros de una tabla.
Habíamos visto que para recuperar todos los registros de una tabla utilizamos el comando SQL select . Para recuperar uno o varios registros específicos debemos agregar la cláusula where con la condición respectiva.
Para ver este concepto implementaremos un formulario que nos permita cargar el código de artículo a consultar. Si el código ingresado existe en la tabla articulos procedemos a mostrar su descripción y precio, en caso de no existir mostramos un mensaje de código inexistente.
El formulario HTML es:
<html> <head> <title>problema</title> </head> <body> <form action="pagina1.asp" method="post"> Ingrese el código del artículo a consultar: <input type="text" name="codigo"><br> <input type="submit" value="Buscar"><br> </form> </body> </html>
La página dinámica es:
<%option explicit%> <html> <head> <title>problema</title> </head> <body> <% dim conexion set conexion = Server.CreateObject("ADODB.Connection") conexion.ConnectionString = "Provider=SQLOLEDB.1;" & _ "Data Source=.;" & _ "Integrated Security=SSPI;" & _ "Persist Security Info=False;" & _ "Initial Catalog=wi630629_aspya" conexion.Open dim registros set registros = Server.CreateObject("ADODB.RecordSet") registros.open "select codigo,descripcion,precio from articulos where codigo=" _ & request.form("codigo") ,conexion if not registros.eof then response.write("Descripción:" & registros("descripcion")) response.write("<br>") response.write("Precio:" & registros("precio")) response.write("<br>") else response.write("No existe ningún artículo con dicho código") end if conexion.close %> </body> </html>
El primer cambio que podemos observar con respecto al listado completo de la tabla es la cláusula where en el select:
registros.open "select codigo,descripcion,precio from articulos where codigo=" _ & request.form("codigo") ,conexion
Es decir rescatamos el registro que coincide con el código de artículo ingresado en el formulario.
Como puede haber solo un registro con dicho código disponemos un if para verificar si la propiedad eof del RecordSet almacena un false (en caso de almacenar un false significa que a rescatado un registro con dicho select, recordemos que eof almacena false si el puntero no a llegado al final de los registros recuperados):
if not registros.eof then
Procedemos a mostrar el registro si la condición del if se verifica verdadera, de forma similar al listado completo del concepto anterior:
response.write("Descripción:" & registros("descripcion")) response.write("<br>") response.write("Precio:" & registros("precio")) response.write("<br>")
En caso que la condición del if se verifique falsa procedemos a mostrar el mensaje de código inexistente:
else response.write("No existe ningún artículo con dicho código") end if