Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Das Konvertieren eines DB-Library Massenkopierprogramms in ODBC ist einfach, da die vom SQL Server Native Client ODBC-Treiber unterstützten Massenkopierfunktionen den DB-Library Massenkopierfunktionen mit den folgenden Ausnahmen ähneln:
DB-Library-Anwendungen übergeben als ersten Parameter von Funktionen zum Massenkopieren einen Zeiger auf eine DBPROCESS-Struktur. In ODBC-Anwendungen wird der DBPROCESS-Zeiger durch ein ODBC-Verbindungshandle ersetzt.
DB-Library Anwendungen rufen BCP_SETL auf, bevor sie eine Verbindung herstellen, um Massenkopiervorgänge in einer DBPROCESS-Instanz zu aktivieren. ODBC-Anwendungen rufen stattdessen SQLSetConnectAttr auf, bevor sie eine Verbindung herstellen, um Massenvorgänge für ein Verbindungshandle zu aktivieren:
SQLSetConnectAttr(hdbc, SQL_COPT_SS_BCP, (void *)SQL_BCP_ON, SQL_IS_INTEGER);
Der SQL Server Native Client ODBC-Treiber unterstützt keine DB-Library Nachrichten- und Fehlerhandler. Sie müssen SQLGetDiagRec aufrufen, um Fehler und Nachrichten abzurufen, die von den ODBC-Massenkopierfunktionen ausgelöst werden. Die ODBC-Versionen der Massenkopierfunktionen geben die Standardrückgabecodes SUCCEED bzw. FAILED für das Massenkopieren zurück statt der Rückgabecodes im ODBC-Stil, wie SQL_SUCCESS oder SQL_ERROR.
Die für den DB-Library bcp_bindvarlen-Parameter angegebenen Werte werden anders interpretiert als der ODBC-bcp_bindcbData-Parameter .
Angegebene Bedingung DB-Library varlen-Wert ODBC cbData-Wert Angabe von NULL-Werten 0 -1 (SQL_NULL_DATA) Angabe von variablen Daten -1 -10 (SQL_VARLEN_DATA) Zeichen oder binäre Zeichenfolge mit der Länge 0 NA 0 In DB-Library gibt der varlen-Wert von -1 an, dass Daten mit variabler Länge bereitgestellt werden, was im ODBC cbData so interpretiert wird, dass nur NULL-Werte angegeben werden. Ändern Sie alle DB-Library varlen-Spezifikationen von -1 auf SQL_VARLEN_DATA und alle varlen-Spezifikationen von 0 auf SQL_NULL_DATA.
Die DB-Library bcp_colfmtfile_collen und die ODBC-bcp_colfmtcbUserData haben das gleiche Problem wie die oben erwähnten parameter bcp_bindvarlen und cbData . Ändern Sie alle DB-Library file_collen Spezifikationen von -1 auf SQL_VARLEN_DATA und alle file_collen Spezifikationen von 0 auf SQL_NULL_DATA.
Der iValue-Parameter der ODBC-bcp_control-Funktion ist ein Voidzeiger. In DB-Library war iValue eine ganze Zahl. Wandeln Sie die Werte für odbc iValue in void * um.
Die bcp_control Option BCPMAXERRS gibt an, wie viele einzelne Zeilen Fehler aufweisen können, bevor ein Massenkopiervorgang fehlschlägt. Der Standardwert für BCPMAXERRS ist 0 (Fehler beim ersten Fehler) in der DB-Library Version von bcp_control und 10 in der ODBC-Version. DB-Library Anwendungen, die vom Standardwert 0 zum Beenden eines Massenkopiervorgangs abhängig sind, müssen geändert werden, um den ODBC-bcp_control aufzurufen, um BCPMAXERRS auf 0 festzulegen.
Die ODBC-bcp_control-Funktion unterstützt die folgenden Optionen, die von der DB-Library Version von bcp_control nicht unterstützt werden:
BCPODBC
Gibt bei Festlegung auf TRUE an, dass datetime - und smalldatetime-Werte , die im Zeichenformat gespeichert werden, das ODBC-Zeitstempel-Escapesequenzpräfix und -Suffix aufweisen. Dies gilt nur für BCP_OUT-Vorgänge.
Wenn BCPODBC auf FALSE festgelegt ist, wird ein in eine Zeichenfolge konvertierter datetime-Wert wie folgt ausgegeben:
1997-01-01 00:00:00.000
Wenn BCPODBC auf TRUE festgelegt ist, wird derselbe datetime-Wert ausgegeben wie:
{ts '1997-01-01 00:00:00.000' }
BCPKEEPIDENTITY
Durch die Festlegung dieser Option auf TRUE wird angegeben, dass Massenkopierfunktionen Datenwerte einfügen, die für Spalten mit einer IDENTITY-Einschränkung bereitgestellt werden. Wenn dies nicht festgelegt ist, werden neue Identitätswerte für die eingefügten Zeilen generiert.
BCPHINTS
Gibt verschiedene Optimierungen für das Massenkopieren an. Diese Option kann nicht in Version 6.5 oder früheren Versionen von SQL Server verwendet werden.
BCPFILECP
Gibt die Codepage für die Datendatei des Massenkopiervorgangs an.
BCPUNICODEFILE
Gibt an, dass eine Datendatei für das Massenkopieren im Zeichenmodus eine Unicode-Datei ist.
Die ODBC-bcp_colfmt-Funktion unterstützt den file_type-Indikator von SQLCHAR nicht, da sie mit dem ODBC SQLCHAR-Typdef in Konflikt steht. Verwenden Sie stattdessen SQLCHARACTER für bcp_colfmt.
In den ODBC-Versionen von Massenkopierfunktionen ist das Format für die Arbeit mit datetime - und smalldatetime-Werten in Zeichenfolgen das ODBC-Format von jjjj-mm-tt hh:mm:sss. smalldatetime-Werte verwenden das ODBC-Format jjjj-mm-tt hh:mm:ss.
Die DB-Library Versionen der Massenkopierfunktionen akzeptieren datetime- und smalldatetime-Werte in Zeichenfolgen in verschiedenen Formaten:
Das Standardformat ist mmm dd yyyy hh:mmxx , wobei xx entweder AM oder PM ist.
datetime - und smalldatetime-Zeichenfolgen in einem beliebigen Format, das von der DB-Library dbconvert-Funktion unterstützt wird.
Wenn das Feld Internationale Einstellungen verwenden auf der Registerkarte DB-Library Optionen des SQL Server Clientnetzwerk-Hilfsprogramms aktiviert ist, akzeptieren die DB-Library Massenkopierfunktionen auch Datumsangaben im regionalen Datumsformat, das für die Gebietsschemaeinstellung der Clientcomputerregistrierung definiert ist.
Die DB-Library Massenkopierfunktionen akzeptieren die FORMATE ODBC datetime und smalldatetime nicht.
Wenn das SQL_SOPT_SS_REGIONALIZE-Anweisungsattribut auf SQL_RE_ON festgelegt wurde, akzeptieren die ODBC-Funktionen zum Massenkopieren auch Datumsangaben in dem regionalen Datumsformat, das für die Einstellung des Gebietsschemas in der Registrierung des Clientcomputers definiert wurde.
Bei der Ausgabe von Geldwerten im Zeichenformat liefern ODBC-Massenkopierfunktionen vier Ziffern der Genauigkeit und keine Kommatrennzeichen. DB-Library Versionen bieten nur zwei Ziffern der Genauigkeit und enthalten die Kommastrennzeichen.
Weitere Informationen
Durchführen von Massenkopiervorgängen (ODBC)
Bulk Copy Functions