Я просто не понимаю, почему этот запрос не тянет результаты - PullRequest
3 голосов
/ 14 января 2011

Хорошо, это самый простой запрос в мире, и он почему-то не работает.

SELECT * FROM kal_auth.dbo.Login WHERE ID = 'Zen' AND PWD = CONVERT(varchar,'0x9248FEFE237DB009')

0x9248FEFE237DB009 не является шестнадцатеричным, хотя выглядит так.но он преобразуется в «Пароль»

Я знаю, что эта строка существует, и это единственное поле пароля, которое не возвращает результаты, это было изучено путем их изоляции и тестирования.

Поле PWDvarchar (16).

Я не понимаю этого.

Ответы [ 2 ]

3 голосов
/ 14 января 2011

Используйте

SELECT CONVERT(VARCHAR,0x9248FEFE237DB009) -- returns ’Hþþ#}° 

Не

SELECT CONVERT(varchar,'0x9248FEFE237DB009') -- returns 0x9248FEFE237DB009

Заключая его в кавычки, он обрабатывается как строка, а не как двоичные данные, означающие, что преобразование в varchar ничего не делает!

3 голосов
/ 14 января 2011

Я могу что-то здесь упустить ...

Результат CONVERT (varchar, '0x9248FEFE237DB009') - это тот же самый '0x9248FEFE237DB009' с 18 символами, не так ли? Так как же он может быть равен паролю из 16 символов?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...