Partager via


Procédure : copier des données en bloc avec IRowsetFastLoad (OLE DB)

Le consommateur notifie SQLOLEDB de son besoin de copie en bloc en affectant la valeur VARIANT_TRUE à la propriété SQLOLEDB spécifique au fournisseur SSPROP_ENABLEFASTLOAD . Avec la propriété définie sur la source de données, le consommateur crée une session SQLOLEDB. La nouvelle session autorise le consommateur à accéder à IRowsetFastLoad.

Un exemple complet illustrant l'utilisation de IRowsetFastLoad pour copier en bloc les enregistrements d'une table est disponible. Dans cet exemple, 10 enregistrements sont ajoutés à la table IRFLTable. Vous devez créer la table IRFLTable dans la base de données.

L'exemple de code complet est dans le fichier BulkCopyRecords.cpp. Vous pouvez télécharger une archive contenant l'exemple à partir de la page de téléchargements SQL Server sur MSDN.

Cet exemple a été développé à l'aide de Microsoft Visual C++ 2005.

Remarque relative à la sécuritéRemarque relative à la sécurité

Si possible, utilisez l'authentification Windows. Si l'authentification Windows n'est pas disponible, invitez les utilisateurs à entrer leurs informations d'identification au moment de l'exécution. Évitez de stocker ces informations dans un fichier. Si vous devez rendre les informations d'identification persistantes, chiffrez-les avec l'API de chiffrement Win32.

Pour copier des données en bloc dans une table SQL Server

  1. Établissez une connexion à la source de données.

  2. Affectez la valeur VARIANT_TRUE à la propriété de source de données SQLOLEDB spécifique au fournisseur SSPROP_ENABLEFASTLOAD. Avec cette propriété définie à VARIANT_TRUE, la session nouvellement créée accorde au consommateur l'accès à IRowsetFastLoad.

  3. Créez une session qui demande l'interface IOpenRowset.

  4. Appelez IOpenRowset::OpenRowset pour ouvrir un ensemble de lignes qui inclut toutes les lignes de la table (dans laquelle les données doivent être copiées à l'aide de l'opération de copie en bloc).

  5. Effectuez les liaisons nécessaires et créez un accesseur à l'aide de IAccessor::CreateAccessor.

  6. Configurez la mémoire tampon à partir de laquelle les données seront copiées vers la table.

  7. Appelez IRowsetFastLoad::InsertRow pour copier en bloc les données dans la table.