Cómo hacer una copia masiva sin un archivo de formato (ODBC)

En un ejemplo completo se muestra cómo utilizar las funciones de copia masiva para crear un archivo de datos de modo nativo. El código de ejemplo completo está en el archivo BulkCopyNativeMode.cpp, que puede descargar de la página de descargas de SQL Server en MSDN. Este ejemplo se desarrolló utilizando Microsoft Visual C++ 2005 para ODBC versión 3.0 o posterior.

Nota de seguridadNota de seguridad

Siempre que sea posible, utilice la autenticación de Windows. Si la autenticación de Windows no está disponible, solicite a los usuarios que escriban sus credenciales en tiempo de ejecución. No guarde las credenciales en un archivo. Si tiene que conservar las credenciales, debería cifrarlas con la API de criptografía de Win32.

Para realizar una copia masiva sin un archivo de formato

  1. Asigne un identificador de entorno y un identificador de conexión.

  2. Establezca SQL_COPT_SS_BCP y SQL_BCP_ON para habilitar las operaciones de copia masiva.

  3. Conéctese a SQL Server.

  4. Llame a bcp_init para establecer la siguiente información:

    • El nombre de la tabla o vista desde la que se realizará la copia masiva o en la que se realizará la copia masiva.

    • El nombre del archivo de datos que contiene los datos que van a copiarse en la base de datos o que recibe los datos cuando se realiza una copia desde la base de datos.

    • El nombre de un archivo de datos donde recibir cualquier mensaje de error de la copia masiva (especifique NULL si no desea ningún archivo de mensajes).

    • La dirección de la copia: DB_IN desde el archivo a la vista o tabla o DB_OUT al archivo desde la tabla o vista.

  5. Llame a bcp_exec para ejecutar la operación de copia masiva.

Cuando DB_OUT se establece con estos pasos, el archivo se crea en formato nativo. A continuación, se puede realizar la copia masiva del archivo a un servidor si se siguen estos mismos pasos, excepto que se establece DB_OUT en lugar de DB_IN. Esto sólo funciona si las tablas de destino y origen tienen exactamente la misma estructura.