日期:2014-05-18  浏览次数:20507 次

如何把远程文件写入本地SQL数据库
远程 ACCESS数据库(HOS1) 表(DR1) 字段(name) 存放 图片文件名,图片保存在远程电脑下。
HOS1.DR1 已经链接到本地 HOS数据库 
如何用SQL语句 实现 把远程图片保存到本地SQL(HOS) 表(DR2)字段(file)。
难点是:要转换的图片是 sql查询生成的一个文件名,也就是一个路径, select name from DR1 where name_id=@ID,不是明确的一个图片,比如:d:\1.jpg
这样可以:
UPDATE DR2 SET file=(
select * from openrowset
(bULk N'd:\1.jpg',SINGLE_BLOB)AS IMAGE)
把 d:\1.jpg 换成 查询语句select name from DR1 where name_id=@ID
就不行了


------解决方案--------------------
用动态SQL实现,
SQL code

declare @sql varchar(5000),@filename varhcar(500)

select @filename=name from DR1 where name_id=@ID

select @sql='UPDATE DR2 SET file=('
  +'select * from openrowset'
  +'(bULk N'''+@filename+''',SINGLE_BLOB)AS IMAGE)'

exec(@sql)