CRowset::Insert

CRowset::Insert 使用访问器中的数据创建并初始化新行。

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

参数

  • nAccessor
    [in] 用来插入数据的访问器的索引号

  • bGetHRow
    [in] 指示插入的行句柄是否检索。

返回值

标准版HRESULT

备注

此方法要求可选接口 IRowsetChange,因此所有的提供程序可能不支持;如果是这样,方法返回 E_NOINTERFACE。 还必须设置DBPROP_IRowsetChangeVARIANT_TRUE 在对包含行集合中的 打开 表或命令。

如果一个或多个列是不可写的,则插入操作可能会失败。 修改游标映射以更正此问题。

示例

使用该行集合的表,下面的示例演示如何遍历数据行集访问源然后插入字符串。

首先,通过插入新的 ATL 对象创建表类到项目。 例如,右击在工作区窗格的项目并选择 New ATL Object。 从 Data Access 类,选择 使用者。 创建 类型使用者对象。(选择 创建一行集直接从表;选择 命令 通过 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 类