我想檢測MARS(多活動結果集)是否在當前連接上處於活動狀態,以便檢查需要MARS支持的功能中的錯誤配置。如何檢測MARS是否在當前連接上處於活動狀態?
使用TSQL命令或.NET SQL Server Native Client API方法。
我想檢測MARS(多活動結果集)是否在當前連接上處於活動狀態,以便檢查需要MARS支持的功能中的錯誤配置。如何檢測MARS是否在當前連接上處於活動狀態?
使用TSQL命令或.NET SQL Server Native Client API方法。
您可以檢查ConnectionString屬性是否存在MultipleActiveResultSets屬性,如果存在,請確保將其設置爲true。
根據您的代碼使用情況,您還可以檢查SqlConnection.ServerVersion屬性以檢查MARS支持。主數應該大於等於9.(SQL Server 2005及更高版本)。如果您的代碼在不同的SQL服務器版本上使用,這將非常有用。
SqlConnectionStringBuilder也可以用於反向(也許是一個奇怪的想法),它有一個MultipleActiveResultSets屬性。
如果檢查連接字符串(最佳選項,IMO)沒有吸引力......也許故意欺騙需要MARS的東西,例如打開兩行數據讀取器,讀取其中一行,然後(不關閉閱讀器)請求另一個基於閱讀器的查詢。
請注意,緩衝可能會影響到這一點,但值得一試...
好的手動解析:)任何其他的想法? – Softlion
@Softion不是手動的 - 你可以使用SqlConnectionStringBuilder將它解析成鍵/值對 –
你只需檢查MultipleActiveResultSets鍵 –