IBCPSession::BCPExec (OLE DB)
Si applica a: SQL Server Database SQL di Azure Istanza gestita di SQL di Azure Azure Synapse Analytics Piattaforma di strumenti analitici (PDW)
Esegue l'operazione di copia bulk.
Sintassi
HRESULT BCPExec(
DBROWCOUNT *pRowsCopied);
Osservazioni:
Il metodo BCPExec copia i dati da un file utente a una tabella di database o viceversa, a seconda del valore del parametro eDirection usato con il metodo IBCPSession::BCPInit.
Prima di chiamare BCPExec, chiamare il metodo BCPInit con un nome di file utente valido. In caso contrario, viene generato un errore. L'unica eccezione riguarda le query da utilizzare per operazioni di copia bulk per l'esportazione. In un caso di questo tipo, specificare NULL per il nome di tabella nel metodo BCPInit e quindi specificare la query usando l'opzione BCP_OPTION_HINTS.
Il metodo BCPExec è l'unico metodo di copia bulk che potrebbe rimanere in attesa per un certo periodo di tempo, pertanto è l'unico metodo di copia bulk che supporta la modalità asincrona. Per usare la modalità asincrona, impostare la proprietà di sessione SSPROP_ASYNCH_BULKCOPY specifica del provider su VARIANT_TRUE prima di chiamare il metodo BCPExec. Questa proprietà è disponibile nel set di proprietà DBPROPSET_SQLSERVERSESSION. Per verificare che l'operazione sia stata completata, chiamare il metodo BCPExec con gli stessi parametri. Se la copia bulk non è stata ancora completata, il metodo BCPExec restituisce DB_S_ASYNCHRONOUS. Nell'argomento pRowsCopied restituisce anche un conteggio dello stato del numero di righe inviate al server o ricevute dal server. Il commit delle righe inviate al server non viene eseguito fino a quando non viene raggiunta la fine di un batch.
Argomenti
pRowsCopied[out]
Puntatore a DWORD. Il metodo BCPExec inserisce in DWORD il numero di righe copiate correttamente. Se l'argomento pRowsCopied è impostato su NULL, viene ignorato dal metodo BCPExec.
Valori del codice restituito
S_OK
Il metodo è riuscito.
E_FAIL
Si è verificato un errore specifico del provider. Per informazioni dettagliate, usare l'interfaccia ISQLServerErrorInfo.
E_UNEXPECTED
La chiamata al metodo non era prevista. Non è stato ad esempio chiamato il metodo BCPInit prima della chiamata a questo metodo. Si verifica anche se l'operazione è stata interrotta tramite l'opzione BCP_OPTION_ABORT e successivamente è stato chiamato il metodo BCPExec.
E_OUTOFMEMORY
Errore di memoria insufficiente.
DB_S_ENDOFROWSET
L'operazione di copia bulk è terminata e il trasferimento dei dati è stato completato.
DB_S_ASYNCHRONOUS
Il batch corrente di righe è stato copiato. Chiamare di nuovo il metodo BCPExec per trasferire il batch successivo.
DB_S_ERRORSOCCURRED
Si sono verificati errori durante l'operazione di copia bulk ed è possibile che alcune righe non siano state copiate. Il numero di errori è ancora al di sotto del numero massimo di errori consentiti.