CRowset::Insert
使用存取的資料建立和初始化一個新的資料列。
HRESULT Insert(
int nAccessor = 0,
bool bGetHRow = false
) throw( );
參數
nAccessor
[in]使用存取子的數字為插入資料。bGetHRow
[in]表示是否已擷取插入資料列的控制代碼。
傳回值
標準版 HRESULT
備註
這個方法要求選擇性 IRowsetChange 介面,可能不是所有提供者都支援;如果是這種情況,方法會傳回 E_NOINTERFACE。 在對資料表或是包含資料列集的命令呼叫 Open 之前您也必須設定 DBPROP_IRowsetChange 到 VARIANT_TRUE。
如果出現一個或多個資料行無法寫入的情形,插入便可能會失敗。 請修改您的資料指標 (Cursor) 對應以修正這個問題。
範例
下列範例會在該資料列集顯示如何存取資料來源並將資料列集然後插入字串資料表。
首先,插入新的 ATL 物件至專案以建立資料表類別。 例如,請以滑鼠右鍵按一下工作區窗格的專案並選擇 New ATL 物件。 從 Data Access 分類選取 Consumer。 建立Table型別的消費者物件。(選取 Table 以建立資料列集直接從資料表;選取 Command 透過 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