Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Realiza la operación de copia masiva.
Sintaxis
HRESULT BCPExec(
DBROWCOUNT *pRowsCopied);
Observaciones
El método BCPExec copia los datos de un archivo de usuario en una tabla de base de datos o viceversa, según el valor del parámetro eDirection usado con el método IBCPSession::BCPInit .
Antes de llamar a BCPExec, llame al método BCPInit con un nombre de archivo de usuario válido. Si no lo hace, se producirá un error. La única excepción es si se va a usar una consulta para una operación de copia masiva. En ese caso, especifique NULL para el nombre de tabla en el método BCPInit y, a continuación, especifique la consulta mediante la opción BCP_OPTION_HINTS.
El método BCPExec es el único método de copia masiva que es probable que esté pendiente durante cualquier período de tiempo. Por lo tanto, es el único método de copia masiva que admite el modo asincrónico. Para usar el modo asincrónico, establezca la propiedad de sesión específica del proveedor SSPROP_ASYNCH_BULKCOPY en VARIANT_TRUE antes de llamar al método BCPExec . Esta propiedad está disponible en el conjunto de propiedades DBPROPSET_SQLSERVERSESSION. Para probar la finalización, llame al método BCPExec con los mismos parámetros. Si la copia masiva aún no se ha completado, el método BCPExec devuelve DB_S_ASYNCHRONOUS. También devuelve en el argumento pRowsCopied un recuento de estado del número de filas que se han enviado o recibido desde el servidor. Las filas enviadas al servidor no se confirman hasta que se haya alcanzado el final de un lote.
Argumentos
pRowsCopied[out]
Puntero a un DWORD. El método BCPExec rellena el DWORD con el número de filas copiadas correctamente. Si el argumento pRowsCopied se establece en NULL, se omite mediante el método BCPExec .
Valores de código de retorno
S_OK
El método se ha llevado a cabo de forma correcta.
E_FAIL
Error específico del proveedor; para obtener información detallada, use la interfaz ISQLServerErrorInfo .
Error_Inesperado
No se esperaba la llamada al método. Por ejemplo, no se llamó al método BCPInit antes de llamar a este método. También se produce si la operación se ha anulado mediante el uso de la opción BCP_OPTION_ABORT y posteriormente se llamó al método BCPExec .
E_MEMORIA_INSUFICIENTE
Error de memoria insuficiente.
DB_S_ENDOFROWSET
Se completó la operación de copia masiva y se completó toda la transferencia de datos.
DB_S_ASYNCHRONOUS
Se ha copiado el lote actual de filas. Vuelva a llamar al método BCPExec para transferir el siguiente lote.
DB_S_ERRORSOCCURRED
Se produjeron errores durante la operación de copia masiva y es posible que algunas filas no se hayan copiado. El número de errores sigue siendo menor que el máximo permitido.
Véase también
IBCPSession (OLE DB)
Realización de operaciones de copia masiva