Condividi tramite


CRowset::Insert

Crea e inizializza una nuova riga utilizzando i dati dalla funzione di accesso.

HRESULT Insert( 
   int nAccessor = 0, 
   bool bGetHRow = false  
) throw( );

Parametri

  • nAccessor
    [in] numero della funzione di accesso da utilizzare per l'inserimento di dati.

  • bGetHRow
    [in] indica se l'handle per la riga inserita vengono recuperate.

Valore restituito

HRESULTstandard.

Note

Questo metodo richiede l'interfaccia facoltativa IRowsetChange, che potrebbe non essere supportata in tutti i provider, in questo caso, il metodo restituisce E_NOINTERFACE.È inoltre necessario disporre DBPROP_IRowsetChange a VARIANT_TRUE chiamare Apri la tabella o il comando che contiene il rowset.

Inserimento potrebbe non riuscire se uno o più colonne non è modificabile.Modificare la mappa dei cursori per risolvere questo problema.

Esempio

Nell'esempio seguente viene illustrato come accedere a un'origine dati con un rowset e quindi inserire una stringa utilizzando una tabella nel rowset.

Innanzitutto, creare una classe della tabella inserimento di un nuovo oggetto ATL nel progetto.Ad esempio, fare clic con il pulsante destro del mouse sul progetto nel riquadro dell'area di lavoro e selezionare New ATL Object.La categoria di Data Access , Consumerselezionato.Creare un oggetto consumer di tipo Table.(Selezione Table crea un set di righe direttamente dalla tabella; selezionando Comando crea un rowset tramite un comando SQL.) Selezionare un'origine dati, specificando una tabella con cui accedere all'origine dati.Se si chiama l'oggetto consumer CCustomerTable, quindi verrebbero implementare il codice di inserimento nel modo seguente:

// 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);
}

Requisiti

Header: atldbcli.h

Vedere anche

Riferimenti

Classe CRowset