【发布时间】:2016-03-17 23:46:55
【问题描述】:
背景: 首先,我认为重要的是要注意这是在开发机器上运行的 SQL Express Server。服务器仅用作各种 excel 报告的提要。
由于操作孤岛,我无法直接访问存储所需数据的所有数据库。我目前正在做的是使用 Excel VBA 查询表下载 SSRS 表,导入访问,然后使用链接服务器获取访问表。
问题:
我稍微修改了这个 CLR 代码以通过 SSRS 授权。我只是不确定如何/是否可以以让我导入 SQL 服务器上的表的方式返回 http 请求。
然后我会设置一个 windows 任务来每天自动运行 sql/grab 数据,从进程中删除 vba/access db。
如果您对替代方法有任何提示或建议,我不太关心我是如何到达那里的。感谢您的帮助!
Imports System.IO
Imports System.Data.SqlTypes
Imports System.Net
Public Class FavoriteCLRs
<Microsoft.SqlServer.Server.SqlFunction()>
Public Shared Function CLR_WebQuery(ByVal URL As String) As String
Dim cookieContainer As CookieContainer = New CookieContainer()
Dim myCredentials As New NetworkCredential("user", "password")
' Create a WebRequest with the specified URL.
Dim request As HttpWebRequest = CType(HttpWebRequest.Create(URL), HttpWebRequest)
myCredentials.Domain = "domain"
request.Credentials = myCredentials
request.Timeout = 10000
request.Method = "GET"
request.KeepAlive = True
request.AllowAutoRedirect = True
request.PreAuthenticate = True
request.CookieContainer = cookieContainer
Using response As WebResponse = request.GetResponse()
Using dataStream As Stream = response.GetResponseStream()
Using reader As New StreamReader(dataStream)
Dim responseFromServer As String = reader.ReadToEnd()
Return responseFromServer
End Using
End Using
End Using
request = Nothing
End Function
End Class
【问题讨论】:
标签: sql sql-server vb.net tsql sqlclr