背景: 首先,我想指出,這是一個發展的計算機上運行的SQL Express服務器是很重要的。服務器僅用作各種Excel報告的提要。HTTP請求 - HTML表導入/選擇到SQL Server表CLR或TSQL
由於運營孤島,我沒有直接訪問所有存儲我需要的數據的數據庫。我目前所做的是使用Excel VBA查詢表下載SSRS表,導入以訪問,然後使用鏈接服務器獲取訪問表。
問:
我修改這個CLR代碼稍微打發SSRS授權。我只是不確定如何/如果我能夠以一種讓我導入到SQL服務器上的表格的方式返回http請求。
然後我會設置一個Windows任務來自動運行sql /每天抓取數據,從進程中刪除vba/access數據庫。
如果您對替代方法有任何提示或建議,我並不太在意我如何到達那裏。謝謝你的幫助!
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
srutzky,感謝您的答覆。我發現我可以使用SSRS參數「&rs:command = render&rs:format = csv」,這使得整個過程變得更加簡單。我走了一條不同的路線,最終編寫了一個可以運行在Windows服務上的vb控制檯應用程序。我已經標記你爲答案,因爲我認爲這樣做也可以。 – yeahthisisrob