Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
La conversione di un programma di copia bulk DB-Library in ODBC è semplice perché le funzioni di copia bulk supportate dal driver ODBC di SQL Server Native Client sono simili alle funzioni di copia bulk DB-Library, con le eccezioni seguenti:
DB-Library le applicazioni passano un puntatore a una struttura DBPROCESS come primo parametro delle funzioni di copia bulk. Nelle applicazioni ODBC il puntatore DBPROCESS viene sostituito con un handle di connessione ODBC.
DB-Library le applicazioni chiamano BCP_SETL prima di connettersi per abilitare le operazioni di copia bulk in un DBPROCESS. Le applicazioni ODBC chiamano invece SQLSetConnectAttr prima di connettersi per abilitare le operazioni bulk su un handle di connessione:
SQLSetConnectAttr(hdbc, SQL_COPT_SS_BCP, (void *)SQL_BCP_ON, SQL_IS_INTEGER);Il driver ODBC di SQL Server Native Client non supporta DB-Library gestori di messaggi ed errori; è necessario chiamare SQLGetDiagRec per ottenere errori e messaggi generati dalle funzioni di copia bulk ODBC. Le versioni ODBC delle funzioni di copia bulk restituiscono i codici restituiti di copia bulk standard di SUCCEED o FAILED, non codici restituiti di tipo ODBC, ad esempio SQL_SUCCESS o SQL_ERROR.
I valori specificati per il parametro DB-Library bcp_bindvarlen vengono interpretati in modo diverso rispetto al parametro ODBC bcp_bindcbData .
Condizione indicata DB-Library valore varlen Valore cbData ODBC Valori Null specificati 0 -1 (SQL_NULL_DATA) Dati variabili forniti -1 -10 (SQL_VARLEN_DATA) Carattere di lunghezza zero o stringa binaria NA 0 In DB-Library, un valore varlen di -1 indica che vengono forniti dati di lunghezza variabile, che in ODBC cbData viene interpretato per indicare che vengono forniti solo valori NULL. Modificare le specifiche varlen di DB-Library di -1 in SQL_VARLEN_DATA ed eventuali specifiche varlen da 0 a SQL_NULL_DATA.
I DB-Library bcp_colfmtfile_collen e ODBC bcp_colfmtcbUserData hanno lo stesso problema dei parametri bcp_bind varlen e cbData indicati in precedenza. Modificare le specifiche di DB-Library file_collen di -1 in SQL_VARLEN_DATA e le specifiche di file_collen da 0 a SQL_NULL_DATA.
Il parametro iValue della funzione ODBC bcp_control è un puntatore void. In DB-Library iValue era un numero intero. Eseguire il cast dei valori per ODBC iValue su void *.
L'opzione bcp_control BCPMAXERRS specifica il numero di singole righe che possono avere errori prima che un'operazione di copia bulk abbia esito negativo. Il valore predefinito per BCPMAXERRS è 0 (errore al primo errore) nella versione DB-Library di bcp_control e 10 nella versione ODBC. DB-Library le applicazioni che dipendono dal valore predefinito 0 per terminare un'operazione di copia bulk devono essere modificate per chiamare il bcp_control ODBC per impostare BCPMAXERRS su 0.
La funzione bcp_control ODBC supporta le opzioni seguenti non supportate dalla versione DB-Library di bcp_control:
BCPODBC
Se impostato su TRUE, specifica che i valori datetime e smalldatetime salvati in formato carattere avranno il prefisso e il suffisso odbc della sequenza di escape timestamp. Questo vale solo per le operazioni di BCP_OUT.
Con BCPODBC impostato su FALSE, viene restituito un valore datetime convertito in una stringa di caratteri come segue:
1997-01-01 00:00:00.000Con BCPODBC impostato su TRUE, viene restituito lo stesso valore datetime :
{ts '1997-01-01 00:00:00.000' }BCPKEEPIDENTITY
Se impostato su TRUE, specifica che le funzioni di copia bulk inseriscono i valori di dati forniti per le colonne con vincoli Identity. Se non è impostato, vengono generati nuovi valori Identity per le righe inserite.
BCPHINTS
Specifica varie ottimizzazioni della copia bulk. Questa opzione non può essere usata nella versione 6.5 o versioni precedenti di SQL Server.
BCPFILECP
Specifica la tabella codici del file di copia bulk.
BCPUNICODEFILE
Specifica che un file di copia bulk in modalità carattere è un file Unicode.
La funzione odbc bcp_colfmt non supporta l'indicatore file_type di SQLCHAR perché è in conflitto con il typedef ODBC SQLCHAR. Usare invece SQLCHARACTER per bcp_colfmt.
Nelle versioni ODBC delle funzioni di copia bulk, il formato per l'utilizzo dei valori datetime e smalldatetime nelle stringhe di caratteri è il formato ODBC aaaa-mm-dd hh:mm:ss.sss; i valori smalldatetime usano il formato ODBC aaaa-mm-dd hh:mm:ss.
Le versioni DB-Library delle funzioni di copia bulk accettano valori datetime e smalldatetime nelle stringhe di caratteri usando diversi formati:
Il formato predefinito è mmm gg aaa hh:mmxx dove xx è AM o PM.
stringhe di caratteri datetime e smalldatetime in qualsiasi formato supportato dalla funzione dbconvert DB-Library.
Quando la casella Usa impostazioni internazionali è selezionata nella scheda Opzioni DB-Library di Utilità rete client di SQL Server, le funzioni di copia bulk DB-Library accettano anche date nel formato di data a livello di area definito per l'impostazione delle impostazioni locali del Registro di sistema del computer client.
Le DB-Library funzioni di copia bulk non accettano i formati datetime e smalldatetime ODBC.
Se l'attributo dell'istruzione SQL_SOPT_SS_REGIONALIZE è impostato su SQL_RE_ON, le funzioni di copia bulk ODBC accettano date nel formato di data a livello di area definito per l'impostazione delle impostazioni locali del Registro di sistema del computer client.
Quando si generano valori money in formato carattere, le funzioni di copia bulk ODBC forniscono quattro cifre di precisione e nessun separatore di virgole; DB-Library versioni forniscono solo due cifre di precisione e includono i separatori di virgole.
Vedere anche
Esecuzione di operazioni di copia bulk (ODBC)
Funzioni di copia bulk