CRowset::Insert
Cria e inicializa uma nova linha usando dados do acessador.
HRESULT Insert(
int nAccessor = 0,
bool bGetHRow = false
) throw( );
Parâmetros
nAccessor
[in] O número de acessador para usar para inserir os dados.bGetHRow
[in] Indica se o identificador para a linha inserida é recuperado.
Valor de retorno
Um padrão HRESULT.
Comentários
Este método requer a interface opcional IRowsetChange, que pode não ser suportado em todos os provedores; Se esse for o caso, o método retorna E_NOINTERFACE.Você também deve definir DBPROP_IRowsetChange para VARIANT_TRUE antes de chamar Abrir na tabela ou que contém o conjunto de linhas de comando.
Inserir pode falhar se uma ou mais colunas não é gravável.Modificar o mapa de cursor para corrigir isso.
Exemplo
O exemplo a seguir mostra como acessar uma fonte de dados através de um conjunto de linhas e, em seguida, inserir uma seqüência usando uma tabela em que conjunto de linhas.
Primeiro, crie uma classe de tabela inserindo um novo objeto ATL no seu projeto.Por exemplo, o botão direito do mouse o projeto no painel espaço de trabalho e selecione Novo objeto ATL.Do Acesso a dados categoria, selecione consumidor.Criar um objeto do consumidor do tipo tabela.(Selecionando tabela cria um conjunto de linhas diretamente da tabela; selecionando comando cria um conjunto de linhas através de um comando SQL.) Selecione uma fonte de dados, especificando uma tabela através da qual acessar a fonte de dados.Se você chamar o objeto de consumidor CCustomerTable, você poderia implementar seu código de inserção da seguinte maneira:
// 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);
}
Requisitos
Cabeçalho: atldbcli.h