Procédure : copier en bloc des données à partir de variables de programme (ODBC)
Il existe un exemple qui indique comment utiliser des fonctions de copie en bloc pour copier en bloc des données à partir de variables de programme vers SQL Server à l'aide de bcp_bind et bcp_sendrow. (Le code de contrôle d'erreurs est supprimé afin de simplifier cet exemple.)
L'exemple de code complet se trouve dans le fichier BulkCopyFromVariables.cpp, que vous pouvez télécharger à partir de la page d'Exemples de code SQL Server. Cet exemple a été développé à l'aide de Microsoft Visual C++ 2005 et a été développé pour ODBC version 3.0 ou ultérieure.
Remarque liée à la sécurité Dans la mesure du 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 utiliser des fonctions de copie en bloc directement sur des variables de programme
Allouez un handle d'environnement et un handle de connexion.
Définissez SQL_COPT_SS_BCP et SQL_BCP_ON de façon à activer les opérations de copie en bloc.
Connectez-vous à SQL Server.
Appelez bcp_init pour définir les informations suivantes :
Nom de la table ou de la vue à partir de laquelle ou vers laquelle effectuer la copie en bloc.
Spécifiez NULL pour le nom du fichier de données.
Nom d'un fichier de données devant recevoir tous les messages d'erreur de copie en bloc (spécifiez NULL si vous ne souhaitez pas de fichier de message).
Direction de la copie : DB_IN de l'application vers la vue ou table ou DB_OUT vers l'application à partir de la table ou vue.
Appelez bcp_bind pour chaque colonne dans la copie en bloc afin de lier la colonne à une variable de programme.
Remplissez les variables de programme avec des données et appelez bcp_sendrow pour envoyer une ligne de données.
Après avoir envoyé plusieurs lignes, appelez bcp_batch pour jalonner de points de contrôle les lignes déjà envoyées. Il est conseillé d'appeler au moins une fois bcp_batch chaque millier de lignes.
Après avoir envoyé toutes les lignes, appelez bcp_done pour terminer l'opération.
Vous pouvez varier l'emplacement et la longueur des variables de programme pendant une opération de copie en bloc en appelant bcp_colptr et bcp_collen. Utilisez bcp_control pour définir plusieurs options de copie en bloc. Utilisez bcp_moretext pour envoyer des données text, ntext et image par segments au serveur.
Voir aussi