abdou_31 Ответов: 2

Добавление образа в SQL server 2019


Я хотел бы вставить изображение в таблицу SQL Server , содержащую другие столбцы и столбцы imagepath ( varbinary(MAX) ) с помощью хранимой процедуры, как я могу это сделать?

Спасибо

Что я уже пробовал:

Create procedure insert_test
AS
BEGIN
INSERT test(
   Id,
logo

)
     VALUES (
         @Id,
(SELECT  BulkColumn
    FROM Openrowset(Bulk '''+ @imagepath +''', Single_Blob) as img),
END

2 Ответов

Рейтинг:
0

abdou_31

Я вижу это , но мне нужно использовать хранимую процедуру для таблицы, содержащей другие столбцы, а не таблицу для изображения

Рейтинг:
0

OriginalGriff

Это плохая идея.
Если мы проигнорируем, что вы не определяете ни один из параметров хранимых процедур, которые вы используете (а это означает, что он вообще не будет работать), проблема заключается в том, что этот код полагается на ваш экземпляр SQL Server, имеющий оба фактических файла изображений, хранящихся на нем, и что процесс SQL Server имеет доступ к папкам, содержащим их.
В рабочей среде ни то, ни другое, скорее всего, не будет истинным: экземпляр SQL Server, скорее всего, будет отдельной машиной (или фермой машин), к которой пользователи не имеют прямого доступа по соображениям безопасности, и по аналогичным причинам серверный процесс будет ограничен только теми папками, которые ему нужны для выполнения своей работы, например каталогом хранилища БД.

Гораздо лучше передать данные изображения в качестве параметра вместо пути из вашего программного обеспечения презентации при вызове хранимой процедуры. Это легко сделать в большинстве языков, это показывает, как это сделать в C#: Почему я получаю "параметр недопустим." исключение, когда я читаю изображение из своей базы данных?[^]