CRowset::Insert
Создает и инициализирует новую строку с использованием данных из метода доступа.
HRESULT Insert(
int nAccessor = 0,
bool bGetHRow = false
) throw( );
Параметры
nAccessor
[in] число доступа используется для вставки данных.bGetHRow
[in] указывает, является ли извлечь дескриптор для введенной строки.
Возвращаемое значение
Стандартное HRESULT.
Заметки
Этот метод требует дополнительного интерфейса IRowsetChange, может не поддерживаться во всех поставщиках; если это так, метод возвращает E_NOINTERFACE. Необходимо также установить DBPROP_IRowsetChange в VARIANT_TRUE до вызова метода Открыть на таблице или команда, содержащий набор строк.
Вставка может вылтить сбоя, если один или несколько столбцов недоступны для записи. Чтобы устранить эти ошибки, измените таблицу курсоров.
Пример
В следующем примере показано, как получить доступ к источнику данных через набор строк, а затем вставить строку с таблицей в этом наборе строк.
Сначала создайте класс таблицы можно вставить новый объект ATL в проект. Например, щелкните правой кнопкой мыши проект на панели рабочей области и выберите Новый объект ATL. В категории 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