Sql-Server

從 SSRS 文本框項執行 SQL 儲存過程 - 是否可能

  • November 10, 2020

我知道我們可以在 SSRS 中使用自定義程式碼,並且我知道您對 SSRS 報告中的文本框項目有操作。

是否可以為以下內容“組合”此功能,我很欣賞這與 SSRS 的正常使用完全不同

我希望從我們的 ERP 系統的 SQL 表中生成一份未完成的採購訂單申請清單。在針對每個項目的報告中將是一個帶有“批准”一詞的文本框,該想法是使用者希望批准的申請,他們將點擊“批准”,然後使用自定義程式碼將觸發 SQL 過程,通過在申請程序的 ID 中。該程序將與 ERP 系統互動以進行審批。

這可能嗎?

SSRS 報告程式碼的一些虛擬碼

Imports System.data.sqlclient
Dim connectionString AS String = "Server=XXXXXXX;Database=db1234;User Id=user_name;Password=my_password"
Dim Command As New SQLCommand("[CHC_AppBuilder].[Testssrscall]", connectionString)
Command.CommandType = CommandType.StoredProcedure
Command.ExecuteNonQuery()

SQL 過程[CHC_AppBuilder].[Testssrscall]目前只是對我自己執行 dbmail

到目前為止的問題:

  1. 根據您在visual studio中添加引用的位置System.data.sqlclient.dll,到目前為止無法測試程式碼。
  2. 觸發每個項目的儲存過程。

我認為當 SQL Server 在 SQL 2005/2008 中包含 SOAP/Web 服務時,這曾經更容易。使用 SOAP,您可以為 SQL Web 服務創建一個包裝器,該服務將使用 URL 呼叫儲存過程。Microsoft 在 SQL Server 2012 及更高版本的未來版本中刪除了該功能。我想念功能。

我可以想到三種方法來處理這個問題,但可能還有更多:

首先創建一個 ASP.NET Web 服務

這是一個教程,可讓您連接到數據庫並使用 HTML 訪問 Web 服務。所以基本上,你可以從任何地方呼叫你的儲存過程——而不僅僅是 SSRS。

https://docs.microsoft.com/en-us/aspnet/web-api/overview/older-versions/build-restful-apis-with-aspnet-web-api#Exercise3

其次,使用 SSRS 嵌入自定義程式碼(這裡有一些我認為有用的範例):

http://www.davidgiard.com/2012/09/07/EmbeddedCodeInAnSSRSReport.aspx

https://social.msdn.microsoft.com/Forums/sqlserver/en-US/cdf290fb-153d-4bc2-8964-8b550df7a087/calling-stored-procedure-from-custom-code?forum=sqlreportingservices

最後,創建一個程序集來呼叫自定義函式(呼叫您的過程):

http://davidgiard.com/2012/09/11/CallingAnExternalAssemblyFromSSRS.aspx

引用自:https://dba.stackexchange.com/questions/212542