IBCPSession::BCPControl (OLE DB)
Définit les options d'une opération de copie en bloc.
Syntaxe
HRESULT BCPControl(
inteOption,
void *iValue);
Notes
La méthode BCPControl définit différents paramètres de contrôle pour les opérations de copie en bloc, y compris le nombre d'erreurs autorisées avant l'annulation de la copie en bloc, les numéros des première et dernière lignes à copier à partir d'un fichier de données, et la taille du lot.
Cette méthode est également utilisée pour spécifier l'instruction SELECT à utiliser lors de la copie en bloc de données à partir de SQL Server. Vous pouvez affecter à l'argument eOption la valeur BCP_OPTION_HINTS et à l'argument iValue un pointeur vers une chaîne de caractères larges contenant l'instruction SELECT.
La méthode BCPControl définit les variables membres de la structure BCP pour activer les options définies par l'utilisateur. Les options suivantes sont valides :
Option |
Description |
---|---|
BCP_OPTION_ABORT |
Arrête une opération de copie en bloc déjà en cours. Vous pouvez appeler la méthode BCPControl avec un argument eOption de valeur BCP_OPTION_ABORT à partir d'un autre thread pour arrêter une opération de copie en bloc en cours d'exécution. L'argument iValue est ignoré. |
BCP_OPTION_BATCH |
Nombre de lignes traitées par lot. La valeur par défaut est 0, ce qui indique toutes les lignes d'une table lorsque les données sont extraites, ou toutes les lignes dans le fichier de données utilisateur lorsque les données sont copiées vers SQL Server. Une valeur inférieure à 1 rétablit la valeur par défaut de BCP_OPTION_BATCH. |
BCP_OPTION_FILECP |
L'argument iValue contient le numéro de la page de codes pour le fichier de données. Vous pouvez spécifier le numéro de la page de codes, tel que 1252 ou 850, ou l'une des valeurs suivantes :
|
BCP_OPTION_FILEFMT |
Numéro de version du format de fichier de données. Ce peut être 80 (SQL Server 2000), 90 (SQL Server 2005) ou 100. 100 est la valeur par défaut, qui indique que le fichier est au format SQL Server 2008 (ou SQL Server 2008 R2). Cela s'avère utile pour exporter et importer des données dans des formats pris en charge par une version antérieure du serveur. Par exemple, pour importer des données obtenues à partir d'une colonne de texte sur un serveur SQL Server 2000 dans une colonne varchar(max) sur un serveur SQL Server 2005 ou ultérieur, vous devez spécifier 80. De la même façon, si vous spécifiez 80 lorsque vous exportez des données à partir d'une colonne varchar(max), celles-ci sont enregistrées de la même façon que les colonnes de texte (au format SQL Server 2000) et peuvent être importées dans une colonne de texte d'un serveur SQL Server 2000. |
BCP_OPTION_FIRST |
Première ligne de données du fichier ou de la table à copier. La valeur par défaut est 1 ; une valeur inférieure à 1 rétablit la valeur par défaut de cette option. |
BCP_OPTION_FIRSTEX |
Pour les opérations bcp out, spécifie la première ligne de la table de base de données à copier dans le fichier de données. Pour les opérations bcp in, spécifie la première ligne du fichier de données à copier dans la table de base de données. Le paramètre iValue est supposé être l'adresse d'un entier 64 bits signé contenant la valeur. La valeur maximale qui peut être passée à BCPFIRSTEX est 2^63-1. |
BCP_OPTION_FMTXML |
Permet de spécifier que le fichier de format généré doit être au format XML. Par défaut, cette option est désactivée et les fichiers de format sont enregistrés en tant que fichiers texte. Le fichier de format XML fournit une plus grande souplesse, mais aussi quelques contraintes supplémentaires. Par exemple, vous ne pouvez pas spécifier simultanément le préfixe et la terminaison d'un champ, ce qui est possible dans les fichiers de format plus anciens.
Remarque
Les fichiers de format XML ne sont pris en charge que si les outils SQL Server sont installés parallèlement à SQL Server Native Client.
|
BCP_OPTION_HINTS |
L'argument iValue contient un pointeur de chaîne de caractères larges. La chaîne adressée spécifie des indicateurs de traitement de copie en bloc SQL Server ou une instruction Transact-SQL qui retourne un jeu de résultats. Si une instruction Transact-SQL est spécifiée qui retourne plusieurs jeux de résultats, tous les jeux de résultats après le premier sont ignorés. |
BCP_OPTION_KEEPIDENTITY |
Lorsque la valeur TRUE est affectée à l'argument iValue, cette option spécifie que les méthodes de copie en bloc insèrent des valeurs de données fournies pour les colonnes SQL Server définies avec une contrainte d'identité. Le fichier d'entrée doit fournir des valeurs pour les colonnes d'identité. Si cela n'est pas défini, de nouvelles valeurs d'identités sont générées pour les lignes insérées. Toutes les données présentes dans le fichier pour les colonnes d'identité sont ignorées. |
BCP_OPTION_KEEPNULLS |
Spécifie si les valeurs de données vides dans le fichier sont converties en valeurs NULL dans la table SQL Server. Lorsque la valeur TRUE est affectée à l'argument iValue, les valeurs vides seront converties en valeurs NULL dans la table SQL Server. L'option par défaut consiste à convertir les valeurs vides en une valeur par défaut pour la colonne dans la table SQL Server si une valeur par défaut existe. |
BCP_OPTION_LAST |
Dernière ligne à copier. La valeur par défaut indique de copier toutes les lignes. Une valeur inférieure à 1 rétablit la valeur par défaut de cette option. |
BCP_OPTION_LASTEX |
Pour les opérations bcp out, spécifie la dernière ligne de la table de base de données à copier dans le fichier de données. Pour les opérations bcp in, spécifie la dernière ligne du fichier de données à copier dans la table de base de données. Le paramètre iValue est supposé être l'adresse d'un entier 64 bits signé contenant la valeur. La valeur maximale qui peut être passée à BCPLASTEX est 2^63-1. |
BCP_OPTION_MAXERRS |
Nombre d'erreurs autorisées avant l'échec de l'opération de copie en bloc. La valeur par défaut est 10. Une valeur inférieure à 1 rétablit la valeur par défaut de cette option. La copie en bloc impose 65 535 erreurs au maximum. Toute tentative d'attribution d'une valeur supérieure à 65 535 à cette option entraîne l'attribution de la valeur 65 535 à l'option. |
BCP_OPTION_ROWCOUNT |
Retourne le nombre de lignes affectées par l'opération BCP en cours (ou la dernière). |
BCP_OPTION_TEXTFILE |
Le fichier de données n'est pas un fichier binaire, mais un fichier texte. BCP détecte si le fichier texte est un fichier Unicode ou non en vérifiant le marqueur d'octet Unicode dans les 2 premiers octets du fichier de données. |
BCP_OPTION_UNICODEFILE |
Lorsque cette option a pour valeur TRUE, elle spécifie que le fichier d'entrée est un format de fichier Unicode. |
Arguments
eOption[in]
Spécifiez l'une des options répertoriées dans la section Notes ci-dessus.iValue[in]
Valeur pour le paramètre eOption spécifié. L'argument iValue est un cast de valeur entière à un pointeur void permettant d'autoriser l'expansion future vers des valeurs 64 bits.
Valeurs de code de retour
S_OK
La méthode a réussi.E_FAIL
Une erreur spécifique au fournisseur s'est produite. Pour obtenir des informations détaillées, utilisez l'interface ISQLServerErrorInfo.E_UNEXPECTED
L'appel de la méthode était inattendu. Par exemple, la méthode IBCPSession::BCPInit n'a pas été appelée avant l'appel de cette fonction.E_OUTOFMEMORY
Erreur de mémoire insuffisante.