Share via


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 définir l’argument eOption sur BCP_OPTION_HINTS et iValue l’argument pour avoir un pointeur vers une chaîne de caractères large contenant l’instruction SELECT.

Les valeurs possibles pour eOption sont :

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_DELAYREADFMT Une valeur booléenne définie sur true entraîne la lecture d’IBCPSession::BCPReadFmt au moment de l’exécution. Si la valeur False est définie (valeur par défaut), IBCPSession::BCPReadFmt lira immédiatement le fichier de format. Une erreur de séquence se produit si BCP_OPTION_DELAYREADFMT est true et que vous appelez IBCPSession::BCPColumns ou IBCPSession::BCPColFmt.

Une erreur de séquence se produira également si vous appelez IBCPSession::BCPControl(BCPDELAYREADFMT, (void *)FALSE)) après avoir appelé IBCPSession::BCPControl(BCPDELAYREADFMT, (void *)TRUE) et IBCPSession::BCPWriteFmt.

Pour plus d’informations, consultez Découverte des métadonnées.
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_FILECP_ACP : les données du fichier se trouve dans Microsoft Windows ?? page de code du client.
- BCP_FILECP_OEMCP : les données du fichier se trouve dans la page de code OEM du client (par défaut).
- BCP_FILECP_RAW : les données du fichier se trouve dans la page de code de SQL Server.
BCP_OPTION_FILEFMT Numéro de version du format de fichier de données. Il peut s’agir de 80 (SQL Server 2000), 90 (SQL Server 2005), 100 (SQL Server 2008 ou SQL Server 2008 R2), 110 (SQL Server 2012) ou 120 (SQL Server 2014). 120 est la valeur par défaut. 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 d’un serveur SQL Server 2000 dans une colonne varchar(max) dans un serveur SQL Server 2005 ou ultérieur, vous devez spécifier 80. De même, si vous spécifiez 80 lors de l’exportation de données à partir d’une colonne varchar(max), elle sera enregistrée tout comme les colonnes de texte sont enregistrées 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. Note: Les fichiers au format XML ne sont pris en charge que lorsque SQL Server outils sont installés avec 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 Quand l’argument iValue a la valeur true, 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 . Quand l’argument iValue a la valeur TRUE, les valeurs vides sont 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 de 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 eOptionspé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.

Codet de retour

S_OK
S_OK

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 à 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.

Voir aussi

IBCPSession (OLE DB)
Exécution d'opérations de copie en bloc