如何将多个图像直接插入到 sql 数据库

本文关键字:直接插入 sql 数据库 图像 | 更新日期: 2023-09-27 18:36:37

我有一个包含产品详细信息的数据库 产品代码,名称等是列,我在系统中有一个文件夹中的产品图像,我需要根据有关产品代码的正确行将图像直接添加到数据库中,产品代码和图像是sam,产品代码像110-1,110-2等, 图像名称是 110-1jpg,110-2jpg 等我有一个程序,但它没有更新所有行,请帮助

DECLARE @CODE varchar
DECLARE image_cursor CURSOR FOR
SELECT CODE FROM MyMast WHERE img IS NULL
OPEN image_cursor;
FETCH NEXT FROM image_cursor
INTO @CODE;
WHILE @@FETCH_STATUS = 0
BEGIN
DECLARE @sql VARCHAR(MAX)
DECLARE @imagePath VARCHAR(255)
SET @imagePath = 'D:'images'' + RTRIM(LTRIM(@CODE)) + '.jpg'
SET @sql = 'UPDATE Mymast'
SET @sql = @sql + 'SET img = (SELECT BulkColumn FROM OPENROWSET( BULK ''' + @imagePath + ''', Single_Blob) AS Picture), SET PictureFileName = ' + @imagepath
SET @sql = @sql + 'WHERE CODE = ''' + @CODE + ''';'
BEGIN TRY
EXECUTE sp_executesql @sql
END TRY
BEGIN CATCH
END CATCH
FETCH NEXT FROM image_cursor
INTO @CODE;
END
CLOSE image_cursor;
DEALLOCATE image_cursor;
SELECT CODE, img FROM MyMast WHERE img IS NOT NULL

如何将多个图像直接插入到 sql 数据库

DECLARE @CODE int声明image_cursor游标从 IMG 为空的 MyMast 中选择代码开放image_cursor;从image_cursor中获取下一个进入@CODE;而 @@FETCH_STATUS = 0开始 声明@sql NVARCHAR(最大) 声明@imagePath NVARCHAR(255) SET @imagePath = 'D:''images'''+ RTRIM(LTRIM('12')) + '.jpg' SET @sql = 'UPDATE MyMast ' SET @sql = @sql + 'SET IMG = (从 OPENROWSET( BULK ''' + @imagePath + ''', Single_Blob) 中选择 BulkColumn 作为 IMG) ' 设置 @sql = @sql + '其中代码 = ' + STR(@CODE)

BEGIN TRY
    EXECUTE sp_executesql @sql 
END TRY
BEGIN CATCH
END CATCH   
FETCH NEXT FROM image_cursor 
INTO @CODE;

结束关闭image_cursor;解除分配image_cursor;

从 MyMast 中选择代码,IMG 其中 IMG 不为空

我已经尝试过这段代码,但它显示了将 nvarchar 转换为浮点数的错误,代码格式为 110-1