Partager via


CRowset::Insert

Crée et initialise une nouvelle ligne à l'aide de données de l'accesseur.

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

Paramètres

  • nAccessor
    [in] Le numéro de l'accesseur à utiliser pour insérer des données.

  • bGetHRow
    [in] Indique si le handle pour la ligne insérée est récupéré.

Valeur de retour

HRESULTstandard.

Notes

Cette méthode requiert l'interface facultative IRowsetChange, qui ne peut pas être prise en charge par tous les fournisseurs ; si tel est le cas, la méthode retourne E_NOINTERFACE.Vous devez également définir DBPROP_IRowsetChange à VARIANT_TRUE avant d'appeler Ouvrir sur la table ou la commande contenant l'ensemble de lignes.

L'insertion peut échouer si une ou plusieurs colonnes n'est pas accessible en écriture.Modifiez le mappage du curseur pour remédier à cette situation.

Exemple

L'exemple suivant montre comment accéder à une source de données via un jeu de lignes puis insérer une chaîne à l'aide d'un tableau de cet ensemble de lignes.

En premier lieu, créez une classe de table en insérant un nouvel objet ATL à votre projet.Par exemple, cliquez avec le bouton droit sur le projet dans le volet de l'espace de travail et sélectionnez New ATL Object.De la catégorie de Accès aux données , sélectionnez Consumer.Créez un objet consommateur de type Tableau.(Sélection Tableau crée un ensemble de lignes directement du tableau ; sélectionnant Commande crée un ensemble de lignes à l'aide d'une commande SQL.) Sélectionnez une source de données, en spécifiant une table à travers laquelle pour accéder à cette source de données.Si vous appelez votre objet CCustomerTableconsommateur, implémentez votre code d'insertion comme suit :

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

Configuration requise

Header: atldbcli.h

Voir aussi

Référence

CRowset, classe