Как Вы вставляете файл (PDF) в varbinary столбец SQL Server и позже получаете его?

Клиент среднего уровня Node.js может создать клиент базы данных один раз для пользователя и использовать тот же клиент базы данных для любого количества последующих запросов.

Поддерживает ли клиент среднего уровня некое состояние сеанса для аутентифицированного пользователя? Если да, может ли он кэшировать клиент базы данных как часть состояния пользователя?

5
задан peSHIr 15 January 2009 в 07:08
поделиться

2 ответа

Править: Просто замеченный в документации MSDN, что Изображение будет удаленным. Лучше используйте использование VARBINARY (МАКС). (Эй я не знал это).

МОЙ СТАРЫЙ ОТВЕТ: VARBINARY имеет предел 8 КБ. Может быть слишком маленьким для хранения PDF. Необходимо использовать Тип данных image.

Используйте параметры для вставления/выбирания данных через SqlCommand, и можно использовать просто SQL как любое обычное поле.

Данные, которые Вы передаете в поле изображений, являются массивом байтов.

Редактирование 2: Так как Вы используете C#, необходимо получить данные с помощью DataReader. Для создания DataReader используют флаг SequentialAccess на SqlCommand. ExecuteReader, для предотвращения данных, считанных в память слишком рано.

5
ответ дан 14 December 2019 в 04:49
поделиться

Я действительно не использовал бы a byte[] параметр к IDbCommand вообще. Что, если Ваш PDF составляет больших 100 Мбит? Насколько я знаю, это получило бы все те 100 Мбит от Вашей базы данных (нуждающийся в том объеме памяти на Вашем сервере) прежде, чем отправить результат в браузер запроса. Теперь думайте о получении многих параллельных запросов на другой PDFs примерно этого размера... в секунду... Это не очень масштабируемо.

Для возможного решения проверьте "Блоб + Поток = BlobStream", статья я записал для Журнала.NET здесь в Нидерландах несколько лет назад. Этот метод использует команды SQL Server для доступа к частям BLOB от a Stream производный класс.

Статья находится на нидерландском языке, но примера кода, который идет с ним, должно быть достаточно для запущения Вас. Кроме того, Peter De Jonghe, кажется, написал статью о CodeProject, который подробно останавливается на моей статье немного, обобщая ее к больше, чем просто image столбцы в SQL Server. Эта статья находится на английском языке.

Я надеюсь, что это помогает Вам с Вашей проблемой.

3
ответ дан 14 December 2019 в 04:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: