una de sql-injection!!

Iniciado por krispin, 28 Enero 2005, 22:24 PM

0 Miembros y 1 Visitante están viendo este tema.

krispin

Buenax!!!
tengo una preguntilla sobre sql injection.
Hay veces en las que aces una injeccion, y te da el error:
"The text, ntext, or image data type cannot be selected as DISTINCT."

este error se puede salvar?a que se debe? por lo que e leido ademas,
que salga lo de distinct no kiere decir que se haya utilizado distinct.
en la page de microsoft la respuesta es:
"If you have a view that includes a text field, and you reference the text field in a SELECT clause, then you are not allowed to use SELECT DISTINCT. As a result, the query optimizer cannot eliminate certain redundant joins. A solution is to use a nested query on two interface-based views. The inner query uses DISTINCT and includes IntID in the SELECT clause, but does not reference the text field. This causes the inner query to reference a presumably smaller number (specifically, the IntID), which then joins with the interface-based view that contains the text field."

entonces existe alguna sentencia que kuele??????
graciassssss!!

Ambolius

El SELECT DISTINCT en SQL sirve para que en la lista de filas que queramos sacar no aparezcan repetidos. Es decir que si ponemos algo asi como:

SELECT DISTINCT id_user,pass FROM users

y en existen dos usuarios con un id_user 1 (Por ejemplo equivalente al admin) solo nos mostrara 1.

El error te apareceria en esta sentencia si la columna id_user no aceptara el modificador DISTINCT, que es basicamente lo que te vienen a decir los de Microsoft.

Citarque salga lo de distinct no kiere decir que se haya utilizado distinct.

Si aparece ese error, es porque se ha usado en la consulta el DISTINCT, sino no saldria eso.
Un informático a otro:
- ¿Cuantos eran los Dálmatas?
- 101.
- Por el culo te la hinco.

krispin

Gracias por kontestar, pero no mas dixo nada nuevo.
Por lo que veo, no tienes mucha idea de sql, sin utilizar distinct puede darte el error que komente antes.
ya encontre la solucion.
ami me salia al acer un union ese error. con poner union all
es suficiente, cuela.
de todas formas, gracias por contestar.
txao