Разрешения на отправку больших переменных с помощью хранимых процедур (SQL Server) - PullRequest
2 голосов
/ 19 апреля 2010

Я не могу найти способ, позволяющий получать более 4000 байтов одновременно через вызов хранимой процедуры. Я храню в таблице изображения размером около 15–20 килобайт каждое, но после их получения и отображения на странице они всегда имеют размер точно 3,91 КБ (или 4000 байт).

Есть ли у хранимых процедур ограничение на количество данных, которые можно отправить за один раз? Я дважды проверил свои данные, и я действительно получаю только первые 4000 символов из поля varbinary(MAX).

Есть ли настройка разрешений, позволяющая использовать более 4 Кбайт одновременно?

Ответы [ 3 ]

1 голос
/ 19 апреля 2010

Вы должны прочитать Использование типов данных большого значения

Спецификатор max расширяет хранилище возможности varchar, nvarchar, и типы данных varbinary. varchar (max), nvarchar (max) и varbinary (max) вместе называются типы данных большого значения. Ты можешь использовать типы данных большого значения для хранения до 2 ^ 31-1 байт данных.

Типы данных большого значения похожи в поведении их меньше аналоги, varchar, nvarchar и VARBINARY.

Если вы не можете передать больше 4000 байтов, я бы проверил в вашем клиентском приложении, чтобы увидеть, ограничивает ли оно ваши данные. SQL Server может занимать более 4000 байтов одновременно.

РЕДАКТИРОВАТЬ только что нашел это:

EXECUTE (Transact-SQL)

Использование EXECUTE со строкой символов

В более ранних версиях SQL Server строки символов ограничены 8000 байт. Это требует объединения большие строки для динамического исполнения. В SQL Server varchar (max) и Типы данных nvarchar (max) могут быть указано, что учитывает характер Строки до 2 гигабайт данные.

0 голосов
/ 19 апреля 2010

В SQL Server 2005 существует тип данных с именем image. Этот тип данных следует использовать для хранения больших двоичных объектов, особенно изображений.

0 голосов
/ 19 апреля 2010

Вам необходимо использовать другой код для доступа к BLOB-объектам в SQL Server. Пример здесь .

...