Condividi tramite


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 estesi contenente l'istruzione SELECT.

Il metodo BCPControl imposta le variabili membro della struttura BCP per abilitare le opzioni impostate dall'utente. Di seguito vengono indicate le opzioni valide:

Opzione

Descrizione

BCP_OPTION_ABORT

Interrompe 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 interrompere 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 reimposta BCP_OPTION_BATCH sul valore predefinito.

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_FILECP_ACP: i dati contenuti nel file sono inclusi nella tabella codici di Microsoft Windows® del client.

  • BCP_FILECP_OEMCP: i dati contenuti nel file sono inclusi nella tabella codici OEM del client (impostazione predefinita).

  • BCP_FILECP_RAW: i dati contenuti nel file sono inclusi nella tabella codici di SQL Server.

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_HINTS

L'argomento iValue contiene un puntatore alla stringa di caratteri estesi. Tale stringa specifica hint per l'elaborazione della copia bulk di 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_UNICODEFILE

Se impostata su TRUE, questa opzione specifica che il file di input utilizza un formato di file Unicode.

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 l'indicatore di byte Unicode nei primi due byte del file di dati.

BCP_OPTION_FILEFMT

Numero di versione del formato del file di dati. Può essere 70 (SQL Server 7.0), 80 (SQL Server 2000), 90 (SQL Server 2005) o 100. 100 è l'impostazione predefinita e indica che il file è in formato SQL Server 2008. Questa indicazione è utile per l'esportazione e l'importazione di dati in formati supportati nella 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_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.

NotaNota
I file di formato XML sono supportati solo quando gli strumenti di SQL Server vengono installati insieme a SQL Server Native Client.

BCP_OPTION_ROWCOUNT

Restituisce il numero di righe interessate dall'ultima operazione BCP o da quella corrente.

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 restituiti

  • S_OK
    Il metodo è stato eseguito correttamente.

  • E_FAIL
    Si è verificato un errore specifico del provider. Per informazioni dettagliate, utilizzare l'interfaccia ISQLServerErrorInfo.

  • E_UNEXPECTED
    La chiamata al metodo è stata effettuata in modo imprevisto. Non è stato ad esempio chiamato il metodo IBCPSession::BCPInit prima della chiamata a questa funzione.

  • E_OUTOFMEMORY
    Errore di memoria insufficiente.

Vedere anche

Concetti

Altre risorse