Compartir a través de


IBCPSession::BCPControl (OLE DB)

Establece las opciones de una operación de copia masiva.

Sintaxis

HRESULT BCPControl( 
      int eOption,
      void *iValue);

Notas

El método BCPControl establece varios parámetros de control para operaciones de copia masiva, incluidos el número de errores permitidos antes de cancelar una copia masiva, los números de la primera y última filas que se copian de un archivo de datos y el tamaño del lote.

Este método se utiliza también para especificar la instrucción SELECT que se utiliza en la copia masiva de datos desde SQL Server. Puede establecer el argumento eOption en BCP_OPTION_HINTS y en el argumento iValue para tener un puntero a una cadena de carácter ancho que contenga la instrucción SELECT.

El método BCPControl establece las variables miembro de la estructura BCP para habilitar las opciones establecidas por el usuario. Las opciones válidas son las siguientes:

Opción

Descripción

BCP_OPTION_ABORT

Detiene una operación de copia masiva que ya está en curso. Puede llamar al método BCPControl con un argumento eOption de BCP_OPTION_ABORT desde otro subproceso para detener una operación de copia masiva en ejecución. El argumento iValue se pasa por alto.

BCP_OPTION_BATCH

El número de filas por lote. El valor predeterminado es 0, que indica todas las filas de una tabla, cuando se extraen los datos, o todas las filas del archivo de datos del usuario, cuando los datos se copian en SQL Server. Un valor menor que 1 restablece BCP_OPTION_BATCH al valor predeterminado.

BCP_OPTION_FILECP

El argumento iValue contiene el número de la página de códigos para el archivo de datos. Puede especificar el número de la página de códigos, como 1252 u 850, o uno de los valores siguientes:

  • BCP_FILECP_ACP: los datos del archivo están en la página de códigos de Microsoft Windows® del cliente.

  • BCP_FILECP_OEMCP: los datos del archivo están en la página de códigos OEM del cliente (valor predeterminado).

  • BCP_FILECP_RAW: los datos del archivo están en la página de códigos de SQL Server.

BCP_OPTION_FIRST

La primera fila de datos del archivo o la tabla que se copia. El valor predeterminado es 1; un valor menor que 1 reinicializa esta opción a su valor predeterminado.

BCP_OPTION_FIRSTEX

En operaciones de salida de BCP, especifica la primera fila de la tabla de base de datos que se copia en el archivo de datos.

En operaciones de entrada de BCP, especifica la primera fila del archivo de datos que se copia en la tabla de base de datos.

Se espera que el parámetro iValue sea la dirección de un entero de 64 bits firmado que contiene el valor. El valor máximo que se puede pasar a BCPFIRSTEX es 2^63-1.

BCP_OPTION_HINTS

El argumento iValue contiene un puntero de cadena de carácter ancho. La cadena direccionada especifica sugerencias de procesamiento de copia masiva de SQL Server o una instrucción Transact-SQL que devuelve un conjunto de resultados. Si se especifica una instrucción Transact-SQL que devuelve más de un conjunto de resultados, se omiten todos los conjuntos de resultados posteriores al primero.

BCP_OPTION_KEEPIDENTITY

Cuando el argumento iValue está establecido en TRUE, esta opción especifica que los métodos de copia masiva insertan valores de datos proporcionados para las columnas SQL Server definidas con una restricción de identidad. El archivo de entrada debe proporcionar valores para las columnas de identidad. Si no se establece, se generan nuevos valores de identidad para las filas insertadas. No se tiene en cuenta ningún dato presente en el archivo para las columnas de identidad.

BCP_OPTION_KEEPNULLS

Especifica si los valores de datos vacíos del archivo se convertirán en valores NULL en la tabla de SQL Server. Cuando el argumento iValue está establecido en TRUE, los valores vacíos se convierten en NULL en la tabla SQL Server. Con el valor predeterminado, los valores vacíos se convierten en un valor predeterminado para la columna en la tabla de SQL Server si existe un valor predeterminado.

BCP_OPTION_LAST

La última fila que se copia. El valor predeterminado es copiar todas las filas. Un valor menor que 1 reinicia esta opción a su valor predeterminado.

BCP_OPTION_LASTEX

En operaciones de salida de BCP, especifica la última fila de la tabla de base de datos que se copia en el archivo de datos.

En operaciones de entrada de BCP, especifica la última fila del archivo de datos que se copia en la tabla de base de datos.

Se espera que el parámetro iValue sea la dirección de un entero de 64 bits firmado que contiene el valor. El valor máximo que se puede pasar a BCPLASTEX es 2^63-1.

BCP_OPTION_MAXERRS

El número de errores permitido antes de que la operación de copia masiva genere un error. El valor predeterminado es 10. Un valor menor que 1 reinicia esta opción a su valor predeterminado. La copia masiva impone un máximo de 65.535 errores. Si se intenta establecer esta opción en un valor mayor que 65.535, la opción se establece en 65.535.

BCP_OPTION_UNICODEFILE

Cuando se establece en TRUE, esta opción especifica que el archivo de entrada es un formato de archivo de Unicode.

BCP_OPTION_TEXTFILE

El archivo de datos no es un archivo binario, sino un archivo de texto. BCP detecta si el archivo de texto es Unicode o no comprobando el marcador de byte Unicode en los primeros 2 bytes del archivo de datos.

BCP_OPTION_FILEFMT

Número de versión del formato de archivo de datos. Puede ser 70 (SQL Server 7.0), 80 (SQL Server 2000), 90 SQL Server 2005) o 100. 100 es el valor predeterminado e indica que los archivos están en formato de SQL Server 2008. Esto resulta útil para exportar e importar datos en formatos admitidos por versiones anteriores del servidor. Por ejemplo, para importar datos obtenidos de una columna de texto en un servidor SQL Server 2000 a una columna varchar(max) de un servidor SQL Server 2005 o posterior, debe especificar 80. De igual forma, si especifica 80 al exportar datos de una columna varchar(max), éstos se guardarán de la misma forma que las columnas de texto se guardan en el formato de SQL Server 2000 y se podrán importar en una columna de texto de un servidor SQL Server 2000.

BCP_OPTION_FMTXML

Se utiliza para especificar que el archivo de formato generado debe estar en un formato XML. Está apagado de forma predeterminada y de forma predeterminada los archivos de formato se guardan como archivos de texto. El formato de archivo XML proporciona mayor flexibilidad, pero con algunas restricciones más. Por ejemplo, no puede especificar el prefijo ni el terminador de un campo simultáneamente, lo que es posible en archivos de formatos anteriores.

NotaNota
Los archivos con formato XML sólo se admiten cuando se instalan herramientas de SQL Server junto con SQL Server Native Client.

BCP_OPTION_ROWCOUNT

Devuelve el número de filas afectado por la operación actual (o última) de BCP.

Argumentos

  • eOption[in]
    Establézcalo en una de las opciones de la lista de la sección anterior de notas.

  • iValue[in]
    Valor para la eOption especificada. El argumento iValue es una conversión del valor entero a un puntero nulo para permitir la expansión futura a valores de 64 bits.

Valores de código de retorno

  • S_OK
    El método se ejecutó correctamente.

  • E_FAIL
    Se produjo un error específico del proveedor; para obtener información detallada, use la interfaz ISQLServerErrorInfo.

  • E_UNEXPECTED
    No se esperaba la llamada al método. Por ejemplo, no se llamó al método IBCPSession::BCPInit antes de llamar a esta función.

  • E_OUTOFMEMORY
    Error de memoria insuficiente.

Vea también

Conceptos

Otros recursos