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é |
---|
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
Établissez une connexion à la source de données.
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.
Créez une session qui demande l'interface IOpenRowset.
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).
Effectuez les liaisons nécessaires et créez un accesseur à l'aide de IAccessor::CreateAccessor.
Configurez la mémoire tampon à partir de laquelle les données seront copiées vers la table.
Appelez IRowsetFastLoad::InsertRow pour copier en bloc les données dans la table.