неверно указана длина поля varchar - PullRequest
0 голосов
/ 07 марта 2011

У меня есть столбец varchar(800), который является первичным ключом в одной таблице и FK для другой.

Проблема в том, что если я сделаю len(field) - там написано 186. Если я копирую / вставляю текст и проверяю его в блокноте или что-то еще, у меня 198 символов

Содержание это:

http://news.google.com/news/url?sa=t&fd=R&usg=AFQjCNGGTo8JmCWDydNA19MrL4aON-02pA&url=http://creativity-online.com/news/chrysler-nokia-target-among-winners-of-teds-first-ad-contest/149189

Есть идеи, почему разница в длине?

EDIT

Вы правы. Я использовал сетевой менеджер SQL, и это меня обмануло.

Спасибо.

Ответы [ 3 ]

3 голосов
/ 07 марта 2011

Кодируете ли вы HTML-код после того, как прочитали его из базы данных?

Мориартен предположил, что функция SQL Server len будет считать & как один символ, но это не так. Однако, если фактическое содержимое в поле не закодировано в HTML-формате и закодировано в формате HTML при вставке на страницу, каждый символ & изменится на &, что приведет к увеличению длины.

2 голосов
/ 07 марта 2011

Я предполагаю, что, поскольку в вашем тексте три &, функция len сервера sql считает их как всего один или один символ, а в блокноте - пять, что даст вам еще двенадцатьв этом количестве.

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