FIX: 沒有記錄可能會傳回當您呼叫 SQLExecute 函式,來執行預先準備的陳述式,且您使用 SQL Server 2008 中的 [SQL 原生用戶端 ODBC 驅動程式

文章翻譯 文章翻譯
文章編號: 957387 - 檢視此文章適用的產品。
Bug #: 50003391 (SQL Hotfix)
全部展開 | 全部摺疊

在此頁中

徵狀

Microsoft SQL Server 2008 中,您可以使用 [SQL 原生用戶端 ODBC 驅動程式。如果您呼叫的 SQLExecute 函式來執行預先準備的陳述式可能會不傳回任何記錄。 不過,如果您可以在 SQL Server 2005 中,使用 [SQL 原生用戶端 ODBC 驅動程式來呼叫 SQLExecute 函式,會傳回記錄。

發生的原因

這個問題可能是因為驅動 SQL 原生用戶端 ODBC 程式在 SQL Server 2008 中的 Bug。如果您呼叫 SQLBindParameter 函式,在每個 SQLExecute 函式之前,它可能會發生。請參閱 < 其他相關資訊 > 一節,如需詳細資訊。

解決方案

累積更新資訊

這個問題的修正程式先於累計更新 1 發行。如需有關如何取得此累積更新套件的 SQL Server 2008 的詳細資訊,按一下 [下列面的文件編號,檢視 「 Microsoft 知識庫 」 中的發行項]:
956717SQL Server 2008 的累積更新套件 1
附註因為組建是累計,每個新的修正程式版本包含所有 Hotfix 及先前的 SQL Server 2008 隨附所有安全性修正程式都修正版本。Microsoft 建議您考慮安裝最新的修正程式發行版本包含此 Hotfix。 如需詳細資訊,請按一下下列的文件編號,檢視 「 Microsoft 知識庫 」 中的文件:
956909SQL Server 2008 建置發行 SQL Server 2008 之後所發行

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 的英文版在檔案屬性 (或更新版本的檔案屬性) 如下列表格中所列。這些檔案的日期和時間為 Coordinated Universal Time (UTC)。當您檢視檔案資訊時,會將它轉換為當地時間。若要到 UTC 與當地時間差異使用在 [日期及時間 中項目控制台中的 [時區] 索引標籤]。
SQL Server 2008 32 位元版本
摺疊此表格展開此表格
檔案名稱檔案版本檔案大小日期時間平台
Kfsqlncli.dll2007.100.1755.016,9202008 年九月 06 日15: 23x86
Sqlncli10.dll2007.100.1755.02,459,6722008 年九月 06 日15: 40x86
SQL Server 2008 64 位元版本
摺疊此表格展開此表格
檔案名稱檔案版本檔案大小日期時間平台
Kfsqlncli.dll2007.100.1755.017,4322008 年九月 06 日20: 57x64
Sqlncli10.dll2007.100.1755.03,158,5522008 年九月 06 日21: 12x64

其他可行方案

如果要解決這個問題,呼叫 SQLBindParameter 函式一次。當您呼叫 SQLBindParameter 函式時,請確定下列情況是,則為 True:
  • ColumnSize 引數就是大小的足夠。
  • Strlen_or_IndPtr 引數設定為 SQL_NTS。
進行第一個 SQLExecute 函式呼叫之後新的字串值可以複製到 ParameterValuePtr 引數。

狀況說明

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

其他相關資訊

隨著 SQLBindParameter 呼叫,就會發生這個問題。 如果前一個緩衝區符合下列的值長度大小,不被發出陳述式的 re-prepare。 在下列的範例中 ODBC 追蹤,初始參數的緩衝區比對下列的新參數的長度。

初始的參數:
ec8 b6c EXIT SQLBindParameter,傳回碼 0 (SQL_SUCCESS)
HSTMT 05a8e260
UWORD 1
劍 1 <sql_param_input>
劍-8 <sql_c_wchar>
劍-9 <sql_wvarchar>
SQLULEN 7
SWORD 0
PTR 0x028c8a98
SQLLEN 65535
SQLLEN * 0x050506f8 (14)
下列的新參數:
ec8 b6c EXIT SQLBindParameter,傳回碼 0 (SQL_SUCCESS)
HSTMT 05a8e260
UWORD 1
劍 1 <sql_param_input>
劍-8 <sql_c_wchar>
劍-9 <sql_wvarchar>
SQLULEN 14
SWORD 0
PTR 0x028c4f80
SQLLEN 65535
SQLLEN * 0x050506f8 (28)

?考

如需有關 SQLExecute 函式的詳細資訊,請造訪下列 Microsoft 開發 o 人 h 員 ? 工 u 具 ? 網路 (MSDN) 網站]:
http://msdn.microsoft.com/en-us/library/ms713584(VS.85).aspx
如需有關 SQLBindParameter 函式的詳細資訊,請造訪下列 MSDN 網站:
http://msdn.microsoft.com/en-us/library/ms710963(VS.85).aspx

屬性

文章編號: 957387 - 上次校閱: 2008年11月17日 - 版次: 2.0
這篇文章中的資訊適用於:
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Standard Edition for Small Business
關鍵字:?
kbmt kbautohotfix kbexpertiseinter kbfix kbbug kbqfe kbhotfixserver KB957387 KbMtzh
機器翻譯
重要:本文是以 Microsoft 機器翻譯軟體翻譯而成,而非使用人工翻譯而成。Microsoft 同時提供使用者人工翻譯及機器翻譯兩個版本的文章,讓使用者可以依其使用語言使用知識庫中的所有文章。但是,機器翻譯的文章可能不盡完美。這些文章中也可能出現拼字、語意或文法上的錯誤,就像外國人在使用本國語言時可能發生的錯誤。Microsoft 不為內容的翻譯錯誤或客戶對該內容的使用所產生的任何錯誤或損害負責。Microsoft也同時將不斷地就機器翻譯軟體進行更新。
按一下這裡查看此文章的英文版本:957387
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