文件上传到FTP的存储过程. 各位高手,现在对方有个FTP,我每天要把硬盘上指定位置的文件(多个)发送到这个FTP上去,这个存储过程要怎么写? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 先在D盘中创建文件:SLSCONFIGdown.txt 里面的内容为: user FTpusername FTPpassword cd WMS put D:\SLS.cab SLS.cab其中 FTpusername FTPpassword 分别是FTP服务器的用户名和密码 cd wms是进入到FTP服务器的wms文件夹下面(该文件夹中有你想要上传并放入文件的文件夹,如果要放的文件目录就是ftp服务器的根目录下面就不用了) 最后一句话是把目标文件夹保存为自己本机的文件,该文件可以令起别名 然后执行下列语句:exec master..xp_cmdshell 'ftp -v -d -i -n -g -s:D:\SLSCONFIGdown.txt ***.***.***.***' --***.***.***.***是FTp服务器的ip地址你不是已经发了一个帖子,我在那里也给你回了么 只是单纯的传送数据吗?要不要FTP传送出错发邮件的功能? 先写个简单的建立FTP文件:D:ftp_put.txt内容:[code=BatchFile]open 172.172.172.172user guestuserguestuserbinarycd DataExchangelcd D:\testmput *.*closequit[/code]解释:(顺序如上)连接目标IPuser后更用户名密码binary可以不要(数据传输模式,此为2进制)cd 切换远程工作目录(FTP上的接收文件路径)lcd 切换到本机工作目录 (要上传得文件路径)mput 批量传送(如果要一个一个的传用put命令,楼上的写了)close 断开连接quit 推出FTP命令行可以用这个执行exec master..xp_cmdshell 'ftp.exe -n -i -s:D:\ftp_put.txt',no_output但是请注意在数据量小,传送时间短的情况 用这种方法可以 因为,xp_cmdshell 这个命令会等到所有批处理结束后才返回结果如果传送时间长,这个命令会一直占着数据库的进程(哈哈,个人感觉不太好,个人观点)数据量大的就改成1.写个批处理.batFTP_PUT.bat内容:[code=BatchFile]@echo offecho open 172.18.1.1>%temp%ftp.txtecho user guestuser>>%temp%ftp.txtecho dalianguestuser>>%temp%ftp.txtecho binary>>%temp%ftp.txtecho cd DataExchange>>%temp%ftp.txtecho lcd D:\test>>%temp%ftp.txtecho mput *.*>>%temp%ftp.txtecho close>>%temp%ftp.txtecho quit>>%temp%ftp.txtftp.exe -n -i -s:%temp%ftp.txtrem 这样可以加各种附加功能exit[/code]2.建个作业(job)执行cmd的作业步骤地内容为:start D:\ftp_put.bat3.激活语句exec msdb..sp_start_job 'test'--job的名字 自设这样就把执行的进程交给操作系统了数据库只是负责激活批文件(所以数据库不会卡,个人观点)想要知道区别或要别的功能再联系我吧 对了一定要存储过程嘛?设定系统任务也可以啊如果一定要create proc ftp asbeginexec master..xp_cmdshell 'ftp.exe -n -i -s:D:\ftp_put.txt',no_output--exec msdb..sp_start_job 'test' --或者用这个end 怎样通过java代码讲文件每天定时上传到固定的ftp目录下面 无法连接到服条器,错误如图中所示 关于dtsrun 数据库表设计问题!!求救!! 存储过程(简单) 这个问题困扰我一天,看来只能求人了。 怎么把数据"横"过来?求救,在线等,问题简单名了,大哥们进来看看. 邹建,风云大哥! 请问 数据库中能把小写的钱数变成大写的吗,如果能怎么实现!sql2000 帮帮手 求教一个查询的 sql语句 如何编程(c++或c#)实现枚举同一网段内的所有已开启的数据库 重要问题 远程连接sql server 2000的方法
里面的内容为:
user
FTpusername
FTPpassword
cd WMS
put D:\SLS.cab SLS.cab
其中
FTpusername
FTPpassword
分别是FTP服务器的用户名和密码
cd wms是进入到FTP服务器的wms文件夹下面(该文件夹中有你想要上传并放入文件的文件夹,如果要放的文件目录就是ftp服务器的根目录下面就不用了)
最后一句话是把目标文件夹保存为自己本机的文件,该文件可以令起别名
然后执行下列语句:exec master..xp_cmdshell 'ftp -v -d -i -n -g -s:D:\SLSCONFIGdown.txt ***.***.***.***'
--***.***.***.***是FTp服务器的ip地址你不是已经发了一个帖子,我在那里也给你回了么
要不要FTP传送出错发邮件的功能?
D:ftp_put.txt内容:[code=BatchFile]open 172.172.172.172
user guestuser
guestuser
binary
cd DataExchange
lcd D:\test
mput *.*
close
quit[/code]解释:(顺序如上)
连接目标IP
user后更用户名
密码
binary可以不要(数据传输模式,此为2进制)
cd 切换远程工作目录(FTP上的接收文件路径)
lcd 切换到本机工作目录 (要上传得文件路径)
mput 批量传送(如果要一个一个的传用put命令,楼上的写了)
close 断开连接
quit 推出FTP命令行可以用这个执行exec master..xp_cmdshell 'ftp.exe -n -i -s:D:\ftp_put.txt',no_output但是请注意
在数据量小,传送时间短的情况 用这种方法可以
因为,xp_cmdshell 这个命令会等到所有批处理结束后才返回结果
如果传送时间长,这个命令会一直占着数据库的进程(哈哈,个人感觉不太好,个人观点)数据量大的就改成1.写个批处理.bat
FTP_PUT.bat
内容:[code=BatchFile]
@echo off
echo open 172.18.1.1>%temp%ftp.txt
echo user guestuser>>%temp%ftp.txt
echo dalianguestuser>>%temp%ftp.txt
echo binary>>%temp%ftp.txt
echo cd DataExchange>>%temp%ftp.txt
echo lcd D:\test>>%temp%ftp.txt
echo mput *.*>>%temp%ftp.txt
echo close>>%temp%ftp.txt
echo quit>>%temp%ftp.txtftp.exe -n -i -s:%temp%ftp.txtrem 这样可以加各种附加功能exit
[/code]2.建个作业(job)执行cmd的作业步骤地内容为:start D:\ftp_put.bat3.激活语句exec msdb..sp_start_job 'test'--job的名字 自设这样就把执行的进程交给操作系统了数据库只是负责激活批文件(所以数据库不会卡,个人观点)
想要知道区别或要别的功能
再联系我吧
一定要存储过程嘛?
设定系统任务也可以啊如果一定要create proc ftp
as
beginexec master..xp_cmdshell 'ftp.exe -n -i -s:D:\ftp_put.txt',no_output--exec msdb..sp_start_job 'test' --或者用这个end