CRowset::Insert
Cria e inicializa uma nova linha usando os dados de o acessador.
HRESULT Insert(
int nAccessor = 0,
bool bGetHRow = false
) throw( );
Parâmetros
nAccessor
[in] O número de acessador para inserir os dados.bGetHRow
[in] Indica se o identificador de 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 suportada em todos os provedores; se for esse o caso, o método retornará E_NOINTERFACE.Você também deve definir DBPROP_IRowsetChange to VARIANT_TRUE antes de ligar em aberto na tabela ou comando que contém o conjunto de linhas.
Inserção pode falhar se uma ou mais colunas não é gravável.Modifique o MAP de cursor para corrigir o problema.
Exemplo
O exemplo a seguir mostra como acesso um dados por meio de um conjunto de linhas de origem e insira uma seqüência de caracteres usando uma tabela em que conjunto de linhas.
Primeiro, crie uma classe tabela inserindo um novo objeto ATL no seu projeto.Por exemplo, clicar com o botão direito do mouse o projeto no painel de espaço de trabalho e selecionar Novo objeto do ATL.From a Acesso a dados categoria, selecionar Consumidor.Criar um objeto de consumidor do tipo Tabela.(Seleção de Tabela cria um conjunto de linhas diretamente a partir da tabela; selecionando Comando cria um conjunto de registros através de um comando SQL.) selecionar uma fonte de dados, especificando uma tabela por meio do qual a acesso nessa fonte de dados.Se você telefonar de objeto do consumidorCCustomerTable, você poderia, em seguida, 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