Поведение множественного выбора jqGrid при нажатии специальной клавиши

Я ожидал, что от режима множественного выбора будет вести себя так же нормально, пока не будет нажата никакая специальная клавиша. Я имею в виду, что если у вас выбрана строка и вы щелкнете по другой без нажатой другой клавиши, тогда она должна выбрать новую и отменить выбор старой строки. Что ж, стандартные параметры jqGrid позволяют вам выбирать между всегда обычным поведением или всегда множественным выбором. Я получаю сообщение об ошибке: «Строка или двоичный файл будут усечены. Невозможно вставить значение NULL в столбец 'colname', tbale '...

У меня есть довольно большой nvarchar, который я хочу передать функции HashBytes. Я получаю сообщение об ошибке:

«Строка или двоичный файл будут усечены. Невозможно вставить значение NULL в столбец 'colname', tbale 'table'; столбец не допускает значений NULL. ОБНОВИТЬ терпит неудачу. Заявление было завершено. "

Будучи всегда находчивым, я обнаружил, что это произошло из-за того, что функция HashBytes имеет максимальный предел в 8000 байт. Дальнейший поиск показал мне« решение », в котором мой большой varchar будет разделен и хеширован отдельно, а затем объединен с эта пользовательская функция:

function [dbo].[udfLargeHashTable] (@algorithm nvarchar(4), @InputDataString varchar(MAX))
RETURNS varbinary(MAX)
AS
BEGIN
DECLARE
    @Index int,
    @InputDataLength int,
    @ReturnSum varbinary(max),
    @InputData varbinary(max)

SET @ReturnSum = 0
SET @Index = 1
SET @InputData = convert(binary,@InputDataString)
SET @InputDataLength = DATALENGTH(@InputData)

WHILE @Index <= @InputDataLength
BEGIN
    SET @ReturnSum = @ReturnSum + HASHBYTES(@algorithm, SUBSTRING(@InputData, @Index, 8000))
    SET @Index = @Index + 8000
END
RETURN @ReturnSum
END

, которую я вызываю с помощью:

set @ReportDefinitionHash=convert(int,dbo.[udfLargeHashTable]('SHA1',@ReportDefinitionForLookup))

Где @ReportDefinitionHash - это int, а @ReportDefinitionForLookup - это varchar

Передача простого char, такого как 'test', приводит к другому int с моим UDF, чем обычный вызов в HashBytes.

Какие-нибудь советы по этому поводу?

12
задан Keith Pinson 11 January 2017 в 18:47
поделиться