Partage via


IRowsetFastLoad ::InsertRow (fournisseur OLE DB native client)

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

Important

SQL Server Native Client (souvent abrégé en SNAC) a été supprimé dans SQL Server 2022 (16.x) et SQL Server Management Studio 19 (SSMS). Le fournisseur OLE DB pour SQL Server Native Client (SQLNCLI ou SQLNCLI11) et le fournisseur Microsoft OLE DB hérité pour SQL Server (SQLOLEDB) ne sont pas recommandés dans les nouveaux développements. Utilisez à la place le nouveau Microsoft OLE DB Driver (MSOLEDBSQL) pour SQL Server.

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
SQLNCLI11 ne pouvait pas allouer la mémoire suffisante pour compléter la demande.

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 de données consommateur en type de données SQL Server pour une colonne provoque un retour E_FAIL du fournisseur OLE DB SQL Server Native Client. 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 du fournisseur OLE DB SQL Server Native Client sont en écriture seule. Le fournisseur OLE DB SQL Server Native Client n’expose aucune méthode autorisant la requête consommateur de l’ensemble de lignes. 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 définie par défaut pour toute connexion établie via le fournisseur OLE DB SQL Server Native Client.

Voir aussi

IRowsetFastLoad (OLE DB)