IBCPSession::BCPControl (OLE DB)
Imposta le opzioni per un'operazione di copia bulk.
Sintassi
HRESULT BCPControl(
int eOption,
void *iValue);
Osservazioni
Il metodo BCPControl imposta diversi parametri di controllo per le operazioni di copia bulk, inclusi il numero di errori consentiti prima di annullare una copia bulk, i numeri della prima e dell'ultima riga da copiare da un file di dati e le dimensioni batch.
Questo metodo viene inoltre utilizzato per specificare l'istruzione SELECT da utilizzare durante la copia bulk di dati da SQL Server. È possibile impostare l'argomento eOption su BCP_OPTION_HINTS e l'argomento iValue in modo che sia presente un puntatore a una stringa di caratteri wide contenente l'istruzione SELECT.
I possibili valori per eOption sono i seguenti:
Opzione |
Descrizione |
---|---|
BCP_OPTION_ABORT |
Arresta un'operazione di copia bulk già in corso. È possibile chiamare il metodo BCPControl con un argomento eOption di BCP_OPTION_ABORT da un altro thread per arrestare un'operazione di copia bulk in esecuzione. L'argomento iValue viene ignorato. |
BCP_OPTION_BATCH |
Numero di righe per batch. L'impostazione predefinita è 0 e indica tutte le righe di una tabella quando i dati vengono estratti oppure tutte le righe nel file di dati dell'utente quando i dati vengono copiati in SQL Server. Un valore minore di 1 consente di reimpostare BCP_OPTION_BATCH sul valore predefinito. |
BCP_OPTION_DELAYREADFMT |
Valore booleano che, se impostato su true, comporta la lettura da parte di IBCPSession::BCPReadFmt al momento dell'esecuzione. Se impostato su false (impostazione predefinita), il file di formato viene letto immediatamente da IBCPSession::BCPReadFmt. Si verifica un errore nella sequenza se BCP_OPTION_DELAYREADFMT è true e si chiama IBCPSession::BCPColumns o IBCPSession::BCPColFmt. Un errore nella sequenza si verifica inoltre se si chiama IBCPSession::BCPControl(BCPDELAYREADFMT, (void *)FALSE)) dopo IBCPSession::BCPControl(BCPDELAYREADFMT, (void *)TRUE) e IBCPSession::BCPWriteFmt. Per ulteriori informazioni, vedere Individuazione dei metadati. |
BCP_OPTION_FILECP |
L'argomento iValue contiene il numero della tabella codici per il file di dati. È possibile specificare il numero della tabella codici, ad esempio 1252 o 850, o uno dei valori seguenti:
|
BCP_OPTION_FILEFMT |
Numero di versione del formato del file di dati. Il valore può essere 80 (SQL Server 2000), 90 (SQL Server 2005), 100 (SQL Server 2008 o SQL Server 2008 R2) o 110 (SQL Server 2012). 110 è l'impostazione predefinita e indica che il file è in formato SQL Server 2012. Questo valore è utile per l'esportazione e l'importazione di dati in formati supportati da una versione precedente del server. Per importare i dati ottenuti, ad esempio, da una colonna di testo di un server SQL Server 2000 in una colonna varchar(max) di un server SQL Server 2005 o versione successiva, è necessario specificare 80. Analogamente, se si specifica 80 quando si esportano dati da una colonna varchar(max), tali dati vengono salvati esattamente come vengono salvate le colonne di testo nel formato SQL Server 2000 e possono essere importati in una colonna di testo di un server SQL Server 2000. |
BCP_OPTION_FIRST |
Prima riga di dati del file o della tabella da copiare. Il valore predefinito è 1. Un valore minore di 1 reimposta l'opzione sul valore predefinito. |
BCP_OPTION_FIRSTEX |
Per le operazioni BCP out, specifica la prima riga della tabella di database da copiare nel file di dati. Per le operazioni BCP in, specifica la prima riga del file di dati da copiare nella tabella di database. È previsto che il parametro iValue corrisponda all'indirizzo di un numero intero a 64 bit con segno contenente il valore. Il valore massimo che è possibile passare a BCPFIRSTEX è 2^63-1. |
BCP_OPTION_FMTXML |
Specifica che il file di formato generato deve essere in formato XML. L'opzione è disattivata per impostazione predefinita e per impostazione predefinita i file di formato vengono salvati come file di testo. I file di formato XML offrono una maggiore flessibilità ma comportano alcuni vincoli aggiuntivi. Diversamente dai file nei formati precedenti, non è ad esempio possibile specificare contemporaneamente il prefisso e il carattere di terminazione per un campo.
|
BCP_OPTION_HINTS |
L'argomento iValue contiene un puntatore alla stringa di caratteri wide. La stringa a cui viene fatto riferimento specifica hint di elaborazione della copia bulk SQL Server o un'istruzione Transact-SQL che restituisce un set di risultati. Se viene specificata un'istruzione Transact-SQL che restituisce più set di risultati, vengono ignorati tutti i set di risultati successivi al primo. |
BCP_OPTION_KEEPIDENTITY |
Quando l'argomento iValue è impostato su TRUE, questa opzione specifica che i metodi di copia bulk inseriscono i valori di dati specificati per le colonne di SQL Server definite con un vincolo di identità. Il file di input deve fornire valori per le colonne di identità. Se questa impostazione non è disponibile, per le righe inserite vengono generati nuovi valori Identity. Eventuali dati presenti nel file per le colonne di identità vengono ignorati. |
BCP_OPTION_KEEPNULLS |
Specifica se i valori di dati vuoti nel file verranno convertiti in valori NULL nella tabella di SQL Server. Quando l'argomento iValue è impostato su TRUE, i valori vuoti vengono convertiti in valori NULL nella tabella di SQL Server. L'impostazione predefinita prevede che i valori vuoti vengano convertiti in un valore predefinito, se presente, per la colonna nella tabella di SQL Server. |
BCP_OPTION_LAST |
Ultima riga da copiare. L'impostazione predefinita consiste nella copia di tutte le righe. Un valore minore di 1 reimposta l'opzione sul valore predefinito. |
BCP_OPTION_LASTEX |
Per le operazioni BCP out, specifica l'ultima riga della tabella di database da copiare nel file di dati. Per le operazioni BCP in, specifica l'ultima riga del file di dati da copiare nella tabella di database. È previsto che il parametro iValue corrisponda all'indirizzo di un numero intero a 64 bit con segno contenente il valore. Il valore massimo che è possibile passare a BCPLASTEX è 2^63-1. |
BCP_OPTION_MAXERRS |
Numero massimo di errori consentiti prima che l'operazione di copia bulk non riesca. Il valore predefinito è 10. Un valore minore di 1 reimposta l'opzione sul valore predefinito. La copia bulk impone un massimo di 65.535 errori. Il tentativo di impostare questa opzione su un valore maggiore di 65.535 comporta l'impostazione dell'opzione su 65.535. |
BCP_OPTION_ROWCOUNT |
Restituisce il numero di righe interessate dall'ultima operazione BCP o da quella corrente. |
BCP_OPTION_TEXTFILE |
Il file di dati non è un file binario, ma è un file di testo. BCP rileva se il file sia o meno Unicode controllando il marcatore di byte Unicode nei primi due byte del file di dati. |
BCP_OPTION_UNICODEFILE |
Se impostata su TRUE, questa opzione specifica che il file di input utilizza un formato di file Unicode. |
Argomenti
eOption[in]
Impostare questo argomento su una delle opzioni elencate nella sezione precedente contenente le osservazioni.iValue[in]
Valore per l'argomento eOption specificato. L'argomento iValue è un valore integer con cast a un puntatore void per consentire l'espansione futura a valori a 64 bit.
Valori dei codici restituiti
S_OK
Il metodo è riuscito.E_FAIL
Si è verificato un errore specifico del provider. Per informazioni dettagliate, utilizzare l'interfaccia ISQLServerErrorInfo.E_UNEXPECTED
La chiamata al metodo non era prevista. Non è stato ad esempio chiamato il metodo IBCPSession::BCPInit prima della chiamata a questa funzione.E_OUTOFMEMORY
Errore di memoria insufficiente.
Vedere anche
Concetti
Esecuzione di operazioni di copia bulk