共用方式為


CRowset::Insert

建立並初始化新的資料列使用存取子的資料。

HRESULT Insert( 
   int nAccessor = 0, 
   bool bGetHRow = false  
) throw( );

參數

  • nAccessor
    [in]要用於插入資料的存取子的數目而定。

  • bGetHRow
    [in]指出是否擷取插入的資料列的控制代碼。

傳回值

一種標準HRESULT

備註

這個方法會要求選擇性的介面IRowsetChange,這可能不支援所有提供者。 如果是這樣,則此方法會傳回 E_NOINTERFACE。 您也必須設定 DBPROP_IRowsetChangeVARIANT_TRUE呼叫之前開啟的資料表或包含資料列集的命令。

如果一或多個資料行不是可寫入,插入可能會失敗。 請修改您的資料指標 (Cursor) 對應以修正這個問題。

範例

下列範例會示範如何透過資料列集來存取資料來源,然後插入字串,使用該資料列集中的資料表。

首先,藉由將新的 ATL 物件插入至您的專案中建立資料表的類別。 比方說,在工作區] 窗格中的專案上按一下滑鼠右鍵,然後選取新的 ATL 物件。 從 @ 類別中,選取消費者。 建立消費者物件型別的資料表。 (選取資料表會建立一個資料列集,直接從資料表。 選取 [ 命令會建立一個資料列集,透過 SQL 命令。)選取資料來源,指定透過它來存取該資料來源的資料表。 如果您呼叫您的消費者物件 CCustomerTable,則您將再實作您插入的程式碼,如下所示:

// Access the rowset using the wizard-generated class, CCustomerTable
CCustomerTable rs;           // Your CTable-derived class

// Insert a customer
// Note that for fixed-length fields such as billing ID it isn't necessary
// to set the length
rs.m_BillingID = 5002;
rs.m_dwBillingIDStatus = DBSTATUS_S_OK;

_tcscpy_s(rs.m_ContactFirstName, sizeof(rs.m_ContactFirstName) / sizeof(TCHAR), 
   _T("Malcolm"));
rs.m_dwContactFirstNameLength = 7;
rs.m_dwContactFirstNameStatus = DBSTATUS_S_OK;

_tcscpy_s(rs.m_L_Name, sizeof(rs.m_L_Name) / sizeof(TCHAR), _T("Reynolds"));
rs.m_dwL_NameLength = 8;
rs.m_dwContactFirstNameStatus = DBSTATUS_S_OK;

rs.m_CustomerID = 2005;
rs.m_dwCustomerIDStatus = DBSTATUS_S_OK;

_tcscpy_s(rs.m_PostalCode, sizeof(rs.m_PostalCode) / sizeof(TCHAR), 
   _T("34213-4444"));
rs.m_dwPostalCodeLength = 10;
rs.m_dwPostalCodeStatus = DBSTATUS_S_OK;

HRESULT hr = rs.Insert();
if (FAILED(hr))
{
   ATLTRACE(_T("Insert failed: 0x%X\n"), hr);
}

需求

標頭: atldbcli.h

請參閱

參考

CRowset 類別