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_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.
Nota
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.