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 incollata 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.

Inserisci potrebbe non riuscire se una o più colonne non siano modificabili. 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 in una tabella nel rowset.

Innanzitutto, creare una classe della tabella inserimento di un nuovo oggetto ATL al progetto. Ad esempio, fare clic con il pulsante destro del mouse sul progetto nel riquadro dell'area di lavoro e selezionare Nuovo oggetto ATL. Nella categoria di Data Access, Consumerselezionato. Creare un oggetto consumer di tipo Tabella. (Selezione Tabella crea un rowset 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 come 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);
}

Requisiti

Intestazione: atldbcli.h

Vedere anche

Riferimenti

Classe CRowset