【问题标题】:How to download a file with a script Task in SSIS如何在 SSIS 中使用脚本任务下载文件
【发布时间】:2018-08-01 01:24:36
【问题描述】:

我正在努力在 SSIS 脚本任务中使用以下 vba。基本上,它从网络下载文件并将其保存在共享驱动器上。然后将文件加载到 SQL 服务器中。我已经尝试了代码,它在 Excel VBA 中工作。出于安全目的,我修改了 URL。下面只是一个例子

`Const MYURL = "https://123.123.co.uk&filename=Test.xls"

 Sub DataScraping()

Set objHTTP = CreateObject("WinHttp.WinHttpRequest.5.1")
objHTTP.Open "GET", MYURL, False
objHTTP.SetCredentials "1234", "1234", HTTPREQUEST_SETCREDENTIALS_FOR_SERVER

objHTTP.Send

Set oStream = CreateObject("ADODB.Stream")
oStream.Open
oStream.Type = 1
oStream.Write objHTTP.ResponseBody
oStream.SaveToFile ("\\C\files\Test\file13 " & Format(Now(), "ddMMyyyy 
HHmmss") & ".xls")
oStream.Close
End Sub'

【问题讨论】:

  • 问题是什么?
  • 如何在SSIS脚本任务中使用上面的vba?

标签: sql-server vba ssis script-task


【解决方案1】:

在使用 C# 的脚本任务中:

System.Net.WebClient wc = new System.Net.WebClient();
wc.Credentials = new System.Net.NetworkCredential("1234","1234"); // user,pword
wc.DownloadFile("https://123.123.co.uk?filename=Test.xls"
                ,@"c:\Test"+DateTime.Now.ToString("yyyyMMdd")+".xls");

【讨论】:

  • 嗨@KeithL 非常感谢您的回复。其余代码看起来不错,但是在 wc.Credentials = new System.Net.NetworkCredentials 上收到错误消息
  • 类型或命名空间名称 NetworkCredentials 在命名空间 system.Net 中不存在(或者您是否缺少程序集引用?)
  • 在解决方案资源管理器中通常位于右侧。右键单击参考和“添加参考”并添加 System.Net
  • 嗨基思,做到了,现在错误行已经消失了。但是,当我在保存代码后尝试关闭脚本任务时,它会弹出错误消息,指出编译的脚本中有错误。我无法执行脚本错误任务。
  • 这是实际的错误 Keith 'NetworkCredentials' does not implement interface member 'ICredentials.GetCredential(Uri, string)'
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-09
  • 2020-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多