FIX: 的 SQLGetData 函式可能會傳回零,是當您使用函式來擷取二進位資料行在 SQL Server 2005 中的資料被複製的資料的實際的大小

文章翻譯 文章翻譯
文章編號: 950189 - 檢視此文章適用的產品。
Bug #: 50002580 (SQL Hotfix)
Microsoft 為一個可下載檔案散佈 Microsoft SQL Server 2005 的修正程式。因為修正程式是累積,每個新版本包含所有 Hotfix 及先前的 SQL Server 2005 隨附所有安全性修正程式都修正發行。
全部展開 | 全部摺疊

在此頁中

結論

本文將告訴您下列關於此 Hotfix 版本:
  • Hotfix 套件所修正的問題
  • 安裝 Hotfix 套件的先決條件
  • 是否您必須重新啟動電腦安裝 Hotfix 套件之後
  • 是否 Hotfix 套件就會取代任何其他 Hotfix 套件
  • 您必須在是否做任何登錄變更
  • 包含在 Hotfix 套件中的檔案

徵狀

考慮下列案例。Microsoft SQL Server 2005 的實例,請為 SQL Server 2005 Service Pack 2 (SP2) 安裝累積更新 6。您建立包含一個二進位的型別資料行的如影像資料行的資料表。您擁有使用原生 SQL 用戶端 ODBC 驅動程式連線到 SQL Server 執行個體的應用程式。在應用程式中您可以使用 SQLGetData 函數來擷取資料行的資料。在這種情況下函式可能會傳回零,要複製的資料的實際的大小。當下列情況成立時,就會發生這個問題:
  • SQLGetData 函式的 TargetType 參數或指定為 SQL_C_CHAR SQL_C_WCHAR。
  • 您可以指定 SQLGetData 函式的 BufferLength 參數為 0。
例如當您使用 Osql.exe 公用程式來擷取影像資料行的資料時,就會發生這個問題。

發生的原因

SQLGetData 函式可讓 「 應用程式查詢是應用程式提供一個緩衝區來複製資料之前,複製的資料的大小。當使用者要求二進位型別的資料行的資料大小藉由使用緩衝區大小為 0 指定於 SQLGetData 函數時,就會發生這個問題。函式不正確地傳回零代替傳回要複製的資料的實際的大小。

解決方案

Hotfix 資訊

Microsoft 提供支援的 Hotfix。不過,此 Hotfix 旨在修正本文中所述隨問題。只會發生此特定問題的系統套用此 Hotfix。這個 Hotfix 可能會接受額外的測試。因此,如果您不會嚴重影響這個問題,我們建議您等候下一個包含此 Hotfix 的軟體更新。

如果此 Hotfix 可供下載,您可在本知識庫文件的頂端找到「 可用的 Hotfix 下載 」區段。如果本節 Does Not Appear 請連絡[ Microsoft 客戶服務 ] 和 [ 支援 ] 以取得此 Hotfix。

附註如果發生其他問題,或如果需要任何疑難排解,您可能必須建立個別的服務要求。和此 Hotfix 無關的額外支援問題適用一般的支援費用。如需 Microsoft 客戶服務支援部門電話號碼的完整清單或要建立個別的服務要求,請造訪下列 Microsoft 網站:
http://support.microsoft.com/contactus/?ws=support
附註「 下載 Hotfix 」 表單會顯示此 Hotfix 會出現,以供使用的語言。如果您沒有看到您的語言,是因為此 Hotfix 是不適用您的語言。

必要條件

沒有先決條件都是必要的。

重新啟動資訊

您沒有套用此 Hotfix 之後重新啟動電腦。

登錄資訊

您沒有變更登錄。

Hotfix 檔案資訊

此 Hotfix 包含只需修正本文所列問題的那些檔案。此 Hotfix 並未包含必須將產品完整更新至最新版組建的所有檔案。

此 Hotfix 的英文版在檔案屬性 (或更新版本的檔案屬性) 如下列表格中所列。這些檔案的日期和時間為 Coordinated Universal Time (UTC)。當您檢視檔案資訊時,會將它轉換為當地時間。若要到 UTC 與當地時間差異使用在 [日期及時間 中項目控制台中的 [時區] 索引標籤]。
SQL 原生用戶端,32 位元版本
摺疊此表格展開此表格
檔案名稱檔案版本檔案大小日期時間
Sqlncli.dll2005.90.3239.02,237,46410-Apr-0804: 12
Sqlnclir.rll2005.90.1399.0205,52814-Oct-0503: 48
Msvcm80.dll8.0.50727.42479,23222-Sep-0523: 48
Msvcp80.dll8.0.50727.42548,86422-Sep-0523: 48
Msvcr80.dll8.0.50727.42626,68822-Sep-0523: 48
Msvcm80.dll8.0.50727.42479,23222-Sep-0523: 48
Msvcp80.dll8.0.50727.42548,86422-Sep-0523: 48
Msvcr80.dll8.0.50727.42626,68822-Sep-0523: 48
Msvcm80.dll8.0.50727.42479,23222-Sep-0523: 48
Msvcp80.dll8.0.50727.42548,86422-Sep-0523: 48
Msvcr80.dll8.0.50727.42626,68822-Sep-0523: 48
SQL 原生戶端,x x64 版本
摺疊此表格展開此表格
檔案名稱檔案版本檔案大小日期時間
Sqlncli.dll2005.90.3239.02,757,65611-Apr-0815: 32
Sqlnclir.rll2005.90.1399.0206,04014-Oct-0514: 31
Sqlncli.dll2005.90.3239.02,237,46410-Apr-084: 12
Sqlnclir.rll2005.90.1399.0205,52814-Oct-0503: 48
Msvcm80.dll8.0.50727.42516,09622-Sep-0523: 27
Msvcp80.dll8.0.50727.421,097,72822-Sep-0523: 28
Msvcr80.dll8.0.50727.42822,78422-Sep-0523: 26
Msvcm80.dll8.0.50727.42516,09622-Sep-0523: 27
Msvcp80.dll8.0.50727.421,097,72822-Sep-0523: 28
Msvcr80.dll8.0.50727.42822,78422-Sep-0523: 26
Msvcm80.dll8.0.50727.42479,23222-Sep-0523: 48
Msvcp80.dll8.0.50727.42548,86422-Sep-0523: 48
Msvcr80.dll8.0.50727.42626,68822-Sep-0523: 48
Msvcm80.dll8.0.50727.42479,23222-Sep-0523: 48
Msvcp80.dll8.0.50727.42548,86422-Sep-0523: 48
Msvcr80.dll8.0.50727.42626,68822-Sep-0523: 48
Msvcm80.dll8.0.50727.42479,23222-Sep-0523: 48
Msvcp80.dll8.0.50727.42548,86422-Sep-0523: 48
Msvcr80.dll8.0.50727.42626,68822-Sep-0523: 48
SQL 原生用戶端,Itanium 架構版本
摺疊此表格展開此表格
檔案名稱檔案版本檔案大小日期時間
Sqlncli.dll2005.90.3239.05,425,17611-Apr-0801: 45
Sqlnclir.rll2005.90.1399.0205,01614-Oct-0514: 39
Sqlncli.dll2005.90.3239.02,237,46410-Apr-0804: 12
Sqlnclir.rll2005.90.1399.0205,52814-Oct-0503: 48
Msvcm80.dll8.0.50727.42572,41622-Sep-0523: 29
Msvcp80.dll8.0.50727.421,385,47222-Sep-0523: 31
Msvcr80.dll8.0.50727.421,484,80022-Sep-0523: 28
Msvcm80.dll8.0.50727.42572,41622-Sep-0523: 29
Msvcp80.dll8.0.50727.421,385,47222-Sep-0523: 31
Msvcr80.dll8.0.50727.421,484,80022-Sep-0523: 28
Msvcm80.dll8.0.50727.42479,23222-Sep-0523: 48
Msvcp80.dll8.0.50727.42548,86422-Sep-0523: 48
Msvcr80.dll8.0.50727.42626,68822-Sep-0523: 48
Msvcm80.dll8.0.50727.42479,23222-Sep-0523: 48
Msvcp80.dll8.0.50727.42548,86422-Sep-0523: 48
Msvcr80.dll8.0.50727.42626,68822-Sep-0523: 48
Msvcm80.dll8.0.50727.42479,23222-Sep-0523: 48
Msvcp80.dll8.0.50727.42548,86422-Sep-0523: 48
Msvcr80.dll8.0.50727.42626,68822-Sep-0523: 48

狀況說明

Microsoft 已確認<適用於>一節所列之 Microsoft 產品確實有此問題。

其他相關資訊

如果 Sqlncli.dll 檔案建置 2005.90.3228.0,就會發生這個問題。您可以在 %Windir%\System32 目錄中找到 Sqlncli.dll 檔案。

如果要重現問題的步驟

  1. 使用 Osql.exe 公用程式來連接到 SQL Server 2005 的執行個體。若要執行此動作執行下列命令
    osql -E –S <Instance of SQL Server>
  2. 查詢名為 Test 的資料表。測試表格包含影像資料行名為 A1。若要執行此動作執行
    create table test (a1 image)
    go
    insert into test (a1) values ('aaaaa')
    go
    select * from test
    go
    
    下列陳述式。
如 SQL Server 更新命名的結構描述的更多有關,按一下 [下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
822499Microsoft SQL Server 軟體更新套件的新命名結構描述
如需有關軟體更新術語的詳細資訊,按一下 [下面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
824684用來描述 Microsoft 軟體更新標準術語的說明

SQL Server 2005 分析服務的重要資訊

已知的問題存在於累計更新 7 的 SQL Server 2005 分析服務。考慮下列案例。您為 SQL Server 2005 SP2 安裝累積更新 7。在 SQL Server 分析工具中啟動追蹤或停止追蹤。然後,您執行查詢。查詢執行時間超過 ForceCommitTimeout 伺服器設定值。在這種情況下會取消所有在伺服器執行的查詢。如果要解決這個問題,不會執行 MDX 查詢才能啟動追蹤或停止追蹤。

屬性

文章編號: 950189 - 上次校閱: 2008年5月6日 - 版次: 3.1
這篇文章中的資訊適用於:
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Standard X64 Edition
  • Microsoft SQL Server 2005 Standard Edition for Itanium Based Systems
  • Microsoft SQL Server 2005 Enterprise X64 Edition
  • Microsoft SQL Server 2005 Enterprise Edition for Itanium Based Systems
關鍵字:?
kbmt kbautohotfix kbhotfixrollup kbfix kbpubtypekc kbqfe kbexpertiseadvanced kbhotfixserver KB950189 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:950189
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。

提供意見

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com