其中PanelID是唯一表识,HGPic1存放的是一个图片格式文件名(包含路径)。
所有图片文件都存在远程服务器上,已经通过以下语句打通远程服务器
exec master..xp_cmdshell 'net use \\IP\image pwd /user:username'
图片文件名与PanelID有关联,例如
PanelID是A0001,则图片文件件名为A0001_随机几个数字_001.jpg,然后把A0001_随机几个数字_001.jpg拷贝
到本地,D:\Image,同时图片名统一更改为日期相关格式:yy_mm_dd_hh_min_ss.jpg,日期对应文件修改日期即可。
由此对应HGPic1字段格式为(举例):\\IP\image\10_01_02_06_40_07.jpg
我需要把NG_Study_2D中HGPic1字段全部更新一下,根据PanelID在远程服务器上找到并复制到本地,同时改名统一
要怎么操作比较方便?
11 个解决方案
#1
纠正一下HGPic1应该为 D:\Image\10_01_02_06_40_07.jpg
#2
达人们指点一下啊
#3
放程序中做吧 调用API函数
#4
程序里做知道的,VB中做过,但是这个小功能单独写个程序似乎不太必要,
应为图片文件每天会自动生成,我需要定时自动导入,写个程序还必须保证一直运行,比较麻烦。
计划在SQL作业里添加一项,自动运行,定时加载
应为图片文件每天会自动生成,我需要定时自动导入,写个程序还必须保证一直运行,比较麻烦。
计划在SQL作业里添加一项,自动运行,定时加载
#5
xp_getfiledetails 它可以得到文件的具体信息
#6
你是不是要说: insert #temp exec xp_cmdshell.....?
#7
最关键不知道怎么获取文件名,
比如PanelID是A0001,对应的文件名是A0001_随机的数字_001.jpg,
我怎么找到这个文件呢?xp_fileexist好像必须是精确的文件名
比如PanelID是A0001,对应的文件名是A0001_随机的数字_001.jpg,
我怎么找到这个文件呢?xp_fileexist好像必须是精确的文件名
#8
--只做参考用,我是不建议直接用sql来做
create table #file(filepath nvarchar(200))
insert into #file exec master..xp_cmdshell N'dir /b \\IP\image\*.jpg'
--共享路径下的所有jpg文件名都在#file里了
--对此table,逐笔处理,调用xp_cmdshell ,利用copy命令就可
--类似如下,不写了
declare c1 cursor for select N'\\IP\image\'+filepath as filepath
from #file where filepath is not null
open c1
....
set @copy=N'copy '+@filepath + N' D:\image\'+你处理的日期名字.jpg
exec master..xp_cmdshell @copy
...
#9
--将文件名写入filename.txt
exec master..xp_cmdshell 'dir /b c:\image\A0001_*_001.jpg >c:\image\filename.txt'
--读取文件名
select * FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0', 'Text;HDR=no;DATABASE=c:\image\',filename#txt)
#10
建议还是用程序来做 或者用正则来搞定
#11
用程序做了
#1
纠正一下HGPic1应该为 D:\Image\10_01_02_06_40_07.jpg
#2
达人们指点一下啊
#3
放程序中做吧 调用API函数
#4
程序里做知道的,VB中做过,但是这个小功能单独写个程序似乎不太必要,
应为图片文件每天会自动生成,我需要定时自动导入,写个程序还必须保证一直运行,比较麻烦。
计划在SQL作业里添加一项,自动运行,定时加载
应为图片文件每天会自动生成,我需要定时自动导入,写个程序还必须保证一直运行,比较麻烦。
计划在SQL作业里添加一项,自动运行,定时加载
#5
xp_getfiledetails 它可以得到文件的具体信息
#6
你是不是要说: insert #temp exec xp_cmdshell.....?
#7
最关键不知道怎么获取文件名,
比如PanelID是A0001,对应的文件名是A0001_随机的数字_001.jpg,
我怎么找到这个文件呢?xp_fileexist好像必须是精确的文件名
比如PanelID是A0001,对应的文件名是A0001_随机的数字_001.jpg,
我怎么找到这个文件呢?xp_fileexist好像必须是精确的文件名
#8
--只做参考用,我是不建议直接用sql来做
create table #file(filepath nvarchar(200))
insert into #file exec master..xp_cmdshell N'dir /b \\IP\image\*.jpg'
--共享路径下的所有jpg文件名都在#file里了
--对此table,逐笔处理,调用xp_cmdshell ,利用copy命令就可
--类似如下,不写了
declare c1 cursor for select N'\\IP\image\'+filepath as filepath
from #file where filepath is not null
open c1
....
set @copy=N'copy '+@filepath + N' D:\image\'+你处理的日期名字.jpg
exec master..xp_cmdshell @copy
...
#9
--将文件名写入filename.txt
exec master..xp_cmdshell 'dir /b c:\image\A0001_*_001.jpg >c:\image\filename.txt'
--读取文件名
select * FROM OPENROWSET('MICROSOFT.JET.OLEDB.4.0', 'Text;HDR=no;DATABASE=c:\image\',filename#txt)
#10
建议还是用程序来做 或者用正则来搞定
#11
用程序做了