文章編號: 823679 - 上次校閱: 2006年11月9日 - 版次: 2.3

FIX:多項 SQL Server .NET 資料提供者的修正

系統提示本文適用於您使用的作業系統之外的作業系統。與您不相關的文章內容已停用。
全部展開 | 全部摺疊

徵狀

下列錯誤已在目前的 Microsoft SQL Server .NET Data Provider (SqlClient) 版本中獲得修正:
  • 在處理結果或預存程序的批次時,SQL Server 可能會傳回結果集、錯誤訊息與參考訊息。例如,DBCC 預存程序可能會傳回結果集、錯誤訊息與參考訊息的組合。由於 SQL Server 在呼叫 SQLCommand.ExecuteReader (或其他 SQLCommand.Executexxx 方法) 期間,或在處理 SQLDataReader.Read 與 SQLDataReader.NextResult 等結果期間皆有可能傳回錯誤訊息,因而使上述組合更顯複雜。

    使用此修正後,如果資料流中已發生錯誤 (在呼叫 SQLCommand.ExecuteReader 期間),即會產生一個內含所有錯誤訊息的例外狀況,而不會傳回任何結果。

    注意 如果是在第一個結果集後產生錯誤,即會出現來自 SQLDataReader 的例外狀況,其中包含所有的錯誤訊息。這並不是 1.1 版或 1.0 版行為的變更。
  • SqlClient 的 1.1 版推出了處理含有單引號 (') 或雙引號 ("") 的連接字串時所適用的迴歸功能。如此導致具有正確溢出之單引號或雙引號的連接字串因此失效,並且出現下列錯誤訊息:
    初始化字串的格式和開始於索引 {0} 的規格不相符。
    此修正移除了這項迴歸功能。
  • 當 SQLCommand.CommandTimeout 設為零時,您預期會有無限的逾時。但在 SQL Server 的回應分割為兩個封包時,1.1 版與 1.0 版 SqlClient 提供者會產生不正確的逾時。收到第二個封包後,1.1 版與 1.0 版的提供者即會不正確地逾時。本文所述的修正會修正此問題,因此該命令將會有無限的逾時。
  • 在 SQL 陳述式中使用 COMPUTE BY 子句時,1.1 版與 1.0 版的 SqlClient 會失敗,並且會出現下列錯誤訊息:
    不支援 COMPUTE BY 陳述式。
    使用此修正後,SqlClient 即可在 SQL 陳述式中正確處理 COMPUTE BY 子句。
注意 這些問題皆已在最新版的 SQL Server .NET Data Provider (System.Data.dll) 中獲得修正。此修正僅適用於 Microsoft .NET Framework 1.1,而無法修正 .NET Framework 1.0 中的問題。

解決方案

目前 Microsoft 已提供支援的修正,但是其目的僅為修正本文所述的問題。僅當系統發生本文所述之特定問題時,才可以套用此 Hotfix。這個修正可能會接受其他測試。因此,如果此問題未對您造成嚴重影響,Microsoft 建議您等候下一版包含此修正的 .NET Framework 1.1 Service Pack。

如果要立即解決此問題,請與「Microsoft 產品支援服務」連絡,以取得此 Hotfix。如需「Microsoft 產品支援服務」的完整電話號碼清單,以及支援費用的詳細資訊,請造訪下列 Microsoft 網站:
http://support.microsoft.com/contactus/?ws=support (http://support.microsoft.com/contactus/?ws=support)
注意 在某些特殊情況下,如果 Microsoft 支援人員認為某特定更新程式可以解決您的問題時,可能就不會收取一般因支援電話所產生的費用。一般來說,如果有其他支援問題是特定更新程式無法解決的,才會收取支援費用。 此修正的英文版具有下表中所列的檔案屬性 (或更新檔案屬性)。這些檔案的日期與時間以 Coordinated Universal Time (UTC) 表示。當您檢視檔案資訊時,會轉換為當地時間。如果要查看 UTC 與當地時間的時差,請使用 [控制台] 中 [日期和時間] 工具的 [時區] 索引標籤。
摺疊此表格展開此表格
日期時間版本大小檔案名稱
27-Jun-200315:011.1.4322.9181,294,336System.data.dll
30-Jun-200322:271.0.0.01,629,352Ndp1.1-kb823679-x86.exe
03-Jul-200303:205.3.17.17709,920Windowsserver2003-kb821415-x86-enu.exe

狀況說明

Microsoft 已確認本篇文章開頭所列之 Microsoft 產品確有上述問題。

其他相關資訊

如果要在執行 Microsoft Windows Server 2003 的電腦上安裝此修正,請安裝 Windowsserver2003-kb821415-x86-enu.exe。

如果要在執行 Microsoft Windows NT 或 Microsoft Windows 2000 Server 的電腦上安裝此修正,請安裝 Ndp1.1-kb823679-x86.exe。

?考

如需有關使用 COMPUTE BY 子句的詳細資訊,請按一下下面的文件編號,檢視「Microsoft 知識庫」中的文件:
311540? (http://support.microsoft.com/kb/311540/ ) PRB:"COMPUTE BY statements not supported" exception when you use COMPUTE BY clause with SQL Server

這篇文章中的資訊適用於:
  • Microsoft .NET Framework 1.1
  • Microsoft .NET Framework 1.0
關鍵字:?
kbqfe kbhotfixserver kbnetframe110presp1fix kbnetframe110sp1fix kbmanaged kbsystemdata kbsqlclient kbfix kbbug KB823679
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。
Retired KB Article依現狀不再更新的知識庫內容免責聲明
本文旨在說明 Microsoft 不再提供支援的產品。因此,本文係依「現狀」提供,不會再更新。