CRowset::Insert 使用访问器中的数据创建并初始化新行。
HRESULT Insert(
int nAccessor = 0,
bool bGetHRow = false
) throw( );
参数
nAccessor
[in] 用来插入数据的访问器的索引号bGetHRow
[in] 指示插入的行句柄是否检索。
返回值
标准版HRESULT。
备注
此方法要求可选接口 IRowsetChange,因此所有的提供程序可能不支持;如果是这样,方法返回 E_NOINTERFACE。 还必须设置DBPROP_IRowsetChange为VARIANT_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