Partilhar via


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 a ser usado para inserir os dados.

  • bGetHRow
    [in] indica se o identificador para a linha inserida será recuperada.

Valor de retorno

HRESULTpadrão.

Comentários

Esse método exige a interface opcional IRowsetChange, que pode não haver suporte em todos os provedores; nesse caso, o método retornará E_NOINTERFACE. Você também deve definir DBPROP_IRowsetChange a VARIANT_TRUE antes de chamar Abrir na tabela ou o comando que contém o conjunto de linhas.

A inserção pode falhar se uma ou mais colunas não são gravável. Modifique seu mapa de cursor para corrigir isso.

Exemplo

O exemplo a seguir mostra como acessar uma fonte de dados com um conjunto de linhas e insira uma cadeia de caracteres usando uma tabela nesse conjunto de linhas.

Primeiro, crie uma classe de tabela inserindo um novo objeto de ATL do seu projeto. Por exemplo, clique com o botão direito do mouse no painel de espaço de trabalho e selecione New ATL Object. Categoria de Acesso aos Dados , Consumidorselecione. Crie um objeto do consumidor do tipo Tabela. (Selecionar Tabela cria um conjunto de linhas diretamente da tabela; selecione Comando cria um conjunto de linhas por um comando SQL.) Selecione uma fonte de dados, especificando uma tabela a ser usada para acessar a fonte de dados. Se você chamar seu objeto CCustomerTabledo consumidor, você implementaria em seu código de inserção como segue:

// 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

Header: atldbcli.h

Consulte também

Referência

Classe CRowset