Partager via


IRowsetFastLoad::InsertRow (OLE DB)

S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW)

Télécharger le pilote OLE DB

Ajoute une ligne à l'ensemble de lignes de copie en bloc. Pour obtenir des exemples, consultez Copier des données en bloc avec IRowsetFastLoad (OLE DB) et Envoyer des données BLOB vers SQL Server en utilisant IROWSETFASTLOAD et ISEQUENTIALSTREAM (OLE DB).

Syntaxe

  
HRESULT InsertRow(  
      HACCESSOR hAccessor,  
      void* pData);  

Arguments

hAccessor[in]
Handle de l'accesseur définissant les données de ligne pour la copie en bloc. L'accesseur référencé est un accesseur de ligne, liant la mémoire dont le consommateur est propriétaire et qui contient les valeurs des données.

pData[in]
Pointeur vers la mémoire dont le consommateur est propriétaire et qui contient les valeurs des données. Pour plus d'informations, consultez Structures DBBINDING.

Codet de retour

S_OK
S_OK Les valeurs d'état liées de toutes les colonnes ont la valeur DBSTATUS_S_OK ou DBSTATUS_S_NULL.

E_FAIL
Une erreur est survenue. Les informations sur l'erreur sont disponibles depuis les interfaces d'erreur de l'ensemble de lignes.

E_INVALIDARG
L'argument pData a été défini sur un pointeur NULL.

E_OUTOFMEMORY
MSOLEDBSQL n’a pas pu allouer une mémoire suffisante pour traiter la requête.

E_UNEXPECTED
La méthode a été appelée sur un ensemble de lignes de copie en bloc précédemment invalidé par la méthode IRowsetFastLoad::Commit.

DB_E_BADACCESSORHANDLE
L'argument hAccessor fourni par le consommateur n'était pas valide.

DB_E_BADACCESSORTYPE
L'accesseur spécifié n'était pas un accesseur de ligne ou ne spécifiait pas une mémoire dont le consommateur était propriétaire.

Notes

Une erreur lors de la conversion des données du consommateur vers le type de données SQL Server pour une colonne provoque un retour E_FAIL du pilote OLE DB pour SQL Server. Les données peuvent être transmises à SQL Server sur n’importe quelle méthode InsertRow ou seulement sur la méthode Commit. L'application du consommateur peut appeler la méthode InsertRow plusieurs fois avec des données erronées avant de recevoir le message qu'une erreur de conversion de type de données s'est produite. Comme la méthode Commit garantit que toutes les données sont spécifiées correctement par le consommateur, celui-ci peut utiliser la méthode Commit de façon appropriée pour valider les données comme nécessaire.

Les ensembles de lignes de copie en bloc OLE DB Driver pour SQL Server sont en écriture seule. Le fournisseur OLE DB Driver pour SQL Server n'expose aucune méthode qui autorise l'interrogation de l'ensemble de lignes par le consommateur. Pour terminer le traitement, le consommateur peut libérer sa référence sur l’interface IRowsetFastLoad sans appeler la méthode Commit. Il n'existe pas d'utilitaires permettant d'accéder à une ligne insérée par le consommateur dans l'ensemble de lignes et de modifier ses valeurs, ou de la supprimer individuellement de l'ensemble de lignes.

Les lignes copiées en bloc sont mises en forme sur le serveur pour SQL Server. Le format de ligne est affecté par les options qui ont pu être définies pour la connexion ou la session, telles que ANSI_PADDING. Cette option est activée par défaut pour toute connexion établie à travers le fournisseur OLE DB Driver pour SQL Server.

Voir aussi

IRowsetFastLoad (OLE DB)