Строка усечения SQL-сервера больше длины столбца - PullRequest
2 голосов
/ 16 мая 2019

У меня есть столбец Description varchar (2000) в таблице сервера SQL. В интерфейсе у меня есть HTML textarea со свойством maxlength = 2000. Однако, если я введу строку в текстовой области HTML с одним или двумя вводами в строке SQL-сервер, рассмотрим строку более 2000 и урежем 4-5 последних символов введенной строки. Когда я проверяю строку len () на сервере SQL с помощью средства профилирования SQL, при вставке она превышает 2000 символов. Это связано с тем, что SQL Server рассматривает ввод с клавиатуры (код клавиши = 13) как 2 символа. Итак, мой вопрос заключается в том,

1> Как я могу вычислить точную длину строки, используя Jquery или javascript, такой же, как функция длины SQL Server? Так что, если я передаю строку с точной длиной в SQL, она не должна усекать ее.

Я также пытался подсчитать вводимые последовательности в счетчике

var num = _input1.length;
            var lineCount = (_input1.split(/\r\n|\r|\n/).length - 1);
            $("#spnCharCount").text(num + lineCount);


Code on Textarea Keyup..
$("#Description").keyup(function (event) {
        var key = event.which;
            var length = this.value.length;
        if (key >= 33 || key == 13 || key == 32) {
            var maxLength = $(this).attr("maxlength");
            if (length >= maxLength) {
                event.preventDefault();
            }
        }
           $("#spnCharDescriptionCount").text(length);
    });

SQL Server не возвращает ошибку, например «строка или двоичные данные будут усечены» Просто сохраните усеченную строку в столбце.

Я объявил переменную в хранимой процедуре как @Description varchar (2000) Это может вызвать проблему.

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