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);
}
要求
Header: atldbcli.h