Freigeben über


CRowset::Insert

Erstellt und initialisiert eine neue Zeile unter Verwendung von Daten aus dem Accessor.

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

Parameter

  • nAccessor
    [in] Die Anzahl der für das Einfügen verwenden Accessor, der Daten.

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

Rückgabewert

Standard- HRESULT.

Hinweise

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

EINFG könnte fehlschlagen, wenn eine oder mehrere Spalten nicht möglich ist. Ändern Sie die Cursorzuordnung, um diesen Fehler zu beheben.

Beispiel

Im folgenden Beispiel wird veranschaulicht, wie auf eine Datenquelle von einem Rowset zugreift und dann eine Zeichenfolge mit einer Tabelle in diesem Rowset einfügen.

Erstellen Sie zunächst eine Tabellenklasse, indem Sie ein neues ATL-Objekt in Ihr Projekt einfügen. Klicken Sie beispielsweise auf das Projekt im Arbeitsbereich mit der rechten Maustaste und wählen Neues ATL-Objekt aus. In der Datenzugriff Kategorie die Option Consumer aus. Erstellen Sie ein Consumerobjekt des Typs Tabelle. ( Tabelle auswählen, erstellt ein Rowset direkt der Tabelle; Befehl auswählen, erstellt ein Rowset durch einen SQL-Befehl.) Wählen Sie eine Datenquelle aus und angeben mit einer Tabelle, um auf diese Datenquelle zuzugreifen. Wenn Sie das Consumerobjekt CCustomerTable aufrufen, können Sie den Einfügungscode implementieren, wie folgt:

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