Select con resultado "vacio"

04/04/2005 - 16:33 por Javier | Informe spam
Hola:
Resulta que quiero prevenirme de que un usuario pueda proporcionarme un
valor incorrecto para el campo clave de una tabla que consulto en una
aplicacion. Depurando me he dado cuenta de que cuando la clave no es
correcta, el correspondiente dataset se crea con una unica tabla pero sin
filas.
Lo q queria saber es si tambien eleva una excepcion por el hecho de ser un
parametro incorrecto la base de datos, o simplemente considera q el
funcionamiento ha sido "normal" aunque no haya encontrado ninguna fila q
cumpliera con la condicion. La base de datos con la que trabajo es SQL Server
2000, y lo hago desde Visual Studio .NET 2003 (no se si este dato tiene
relevancia, pero por si acaso:) )
Gracias por la informacion.
 

Leer las respuestas

#1 Jportelas
04/04/2005 - 17:55 | Informe spam
Hola Javier:

supongo que lo que hace la sentencia SQL o Stored procedure que usa para
validar el usuario, utiliza la contraseña como parte del WHERE, por eso es
normal que llegue vacio si la contraseña esta mal, esto no levanta excepcion
porque es normal para SQL server, es como una consulta de la cual no hay
datos, asi de sencillo, sin errores. Si se desea evitar esto, se puede hacer
que la sentencia SQL no busque con el password y despues en codigo se compara
el suministrado con el retornado desde DB y ahi si sabrá si el usuario existe
(si llegó al menos un dato) y la contraseña no es correcta.

Suerte pues.

Jairo.


"Javier" wrote:

Hola:
Resulta que quiero prevenirme de que un usuario pueda proporcionarme un
valor incorrecto para el campo clave de una tabla que consulto en una
aplicacion. Depurando me he dado cuenta de que cuando la clave no es
correcta, el correspondiente dataset se crea con una unica tabla pero sin
filas.
Lo q queria saber es si tambien eleva una excepcion por el hecho de ser un
parametro incorrecto la base de datos, o simplemente considera q el
funcionamiento ha sido "normal" aunque no haya encontrado ninguna fila q
cumpliera con la condicion. La base de datos con la que trabajo es SQL Server
2000, y lo hago desde Visual Studio .NET 2003 (no se si este dato tiene
relevancia, pero por si acaso:) )
Gracias por la informacion.

Preguntas similares