HOWTO:SQL Server 識別、OLE DB 樣板與 OLE DB for ODBC

文章翻譯 文章翻譯
當您搭配 SQL Server 資料庫使用 OLE DB 樣板時,通常需要將記錄加至包含識別資料行的資料表。

若要使用 Visual C++ 6.0 隨附的 OLE DB for ODBC 提供者,Msdasql.dll,讓識別資料行正確遞增,您需要用到 COLUMN_ENTRY_STATUS 巨集。
本文曾發行於 CHT194678
本文已封存。本文係以「現狀」提供且不會再更新。

?考

請參閱 MSDN 線上文件中的下列主題:

  • VC++ 說明文件 (VC++ Documentation) 中有關 COLUMN_ENTRY_STATUS 的主題
  • OLE DB 主題中標題為 Status 的文件中有定義「DBSTATUS_S_IGNORE」的資訊

本文件是根據 Microsoft Knowledgebase 文件編號 Q194678 翻譯的。若要參考原始英文文件內容,請至以下網址:

http://support.microsoft.com/support/kb/articles/Q194/6/78.asp

其他相關資訊

下面程式碼範例將示範使用 Visual C++ 6.0 OLE DB 使用者樣板 (Consumer Template) 定義存取子對應 (Accessor Map) 時,要如何使用此巨集:

程式碼範例

   class CMyTableAccessor
   {
   public:
      LONG m_id;          // This is an identity column
      DWORD m_id_status;  // Status variable for id column
      TCHAR m_name[11];

   BEGIN_COLUMN_MAP(CMyTableAccessor)
     COLUMN_ENTRY_STATUS(1, m_id, m_id_status)
     COLUMN_ENTRY(2, m_name)
   END_COLUMN_MAP()

   ...
   };
在資料表中加入新記錄的程式碼應該會類似下面範例:
   CMyTable rs;

   rs.Open();
   rs.ClearRecord();  //Null out current structure

   strcpy(rs.m_name , "New Name");
   rs.m_id_status = DBSTATUS_S_IGNORE;  //Tells the provider to ignore this
                                        // column when updating.

   rs.Insert();  // Insert new record into the table letting server update
                // of the identity column.
   rs.Close();

關於本文

文章編號: 194678
最後一次檢閱: 2014年2月23日
這篇文章中的資訊適用於:: Microsoft Visual C++ 6.0 Enterprise Edition, Microsoft Visual C++ 6.0 Professional Edition, Microsoft Visual C++, 32-bit Learning Edition 6.0, Microsoft Data Access Components 2.5
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。
您想要針對本文提供意見反應嗎?
 

Get more support from smallbusiness.support.microsoft.com

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.