Freigeben über


CRowset::Insert

Erstellt und initialisiert eine neue Zeile mit den Daten aus dem Accessor.

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

Parameter

  • nAccessor
    [in] Die Anzahl der zu verwendenden Accessors zum Einfügen der Daten.

  • bGetHRow
    [in] Gibt an, ob das Handle für die eingefügte Zeile abgerufen wird.

Rückgabewert

Standardmäßige HRESULT.

Hinweise

Diese Methode erfordert die optionale Schnittstelle IRowsetChange, die möglicherweise nicht für alle Anbieter unterstützt wird. Wenn dies der Fall ist, gibt die Methode E_NOINTERFACE zurück.Sie müssen DBPROP_IRowsetChange zu VARIANT_TRUE auch festlegen, bevor Sie auf dem Öffnen Tisch oder den Befehl, der das Rowset enthält aufrufen.

INSERT kann aus, wenn eine oder mehrere Spalten nicht möglich ist.Ändern Sie die Cursorzuordnung, um diesen Fehler zu beheben.

Beispiel

Das folgende Beispiel zeigt, wie Sie eine Datenquelle für ein Rowset zugreifen und dann eine Zeichenfolge mit einer Tabelle in diesem Rowset einfügt.

Erstellen Sie zunächst eine Tabellenklasse, indem Sie ein neues ATL-Objekt in das Projekt einfügen.Beispielsweise Klicken Sie mit der rechten Maustaste auf das Projekt im Arbeitsbereich auswählen und Neues ATL-Objekt.Von der Datenzugriff Kategorie die Option Consumer.Erstellen Sie ein Consumer Objekt vom Typ Tabelle.( Tabelle ausgewählt werden, erstellt ein Rowset direkt aus der Tabelle. Befehl auswählt, wird ein Rowset von einem SQL-Befehl.) Wählen Sie eine Datenquelle aus, und geben Sie bei der eine Tabelle, um diese Datenquelle zuzugreifen.Wenn Sie ein Consumer Objekt CCustomerTable aufrufen, können Sie den Code einfügen, implementieren:

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

Anforderungen

Header: atldbcli.h

Siehe auch

Referenz

CRowset-Klasse