Udostępnij za pośrednictwem


Konwertowanie z biblioteki DB ODBC kopiowania

Konwertowanie biblioteki DB kopiowanie masowe program ODBC jest łatwa ponieważ kopiowanie masowe funkcje obsługiwane przez SQL Server sterownik ODBC macierzystym klienta są podobne do biblioteki DB kopiowanie masowe funkcje, z następującymi wyjątkami:

  • Biblioteki DB aplikacji przekazanie wskaźnika do struktury DBPROCESS jako pierwszy parametr kopiowanie masowe funkcji.W aplikacji ODBC wskaźnika DBPROCESS jest zastępowany dojścia połączenia ODBC.

  • Biblioteki DB aplikacji wywołanie BCP_SETL przed połączeniem, aby umożliwić kopiowanie masowe operacji na DBPROCESS.Aplikacje ODBC zamiast wywoływać Procedura SQLSetConnectAttr przed połączeniem, aby umożliwić operacje zbiorcze na dojścia połączenia:

    SQLSetConnectAttr(hdbc, SQL_COPT_SS_BCP,
        (void *)SQL_BCP_ON, SQL_IS_INTEGER);
    
  • SQL Server Sterownik ODBC macierzystym klienta nie obsługuje biblioteki DB obsługi wiadomości i błędów; Musisz wywołać SQLGetDiagRec uzyskać błędów i komunikatów w podniesione przez funkcji ODBC kopiowanie masowe.Wersje ODBC funkcji kopiowania luzem zwraca standardowe kopiowanie masowe zwraca kody SUCCEED lub nie powiodło się, nie ODBC styl zwraca kody, na przykład SQL_SUCCESS lub wartość SQL_ERROR.

  • The values specified for the DB-Library bcp_bindvarlen parameter are interpreted differently than the ODBC bcp_bindcbData parameter.

    Warunek wskazanych

    Biblioteki DB varlen wartości

    ODBC cbData wartości

    Dostarczone wartości null

    0

    -1 (SQL_NULL_DATA)

    Dostarczone dane zmiennych

    -1

    -10 (SQL_VARLEN_DATA)

    Zerowej długości znak lub ciąg binarny

    ND

    0

    W bibliotece DB varlen wartość -1 wskazuje, że jest dostarczany danych o zmiennej długości, które w ODBC cbData interpretowane oznacza, że tylko wartości NULL są dostarczane.Zmienić wszystkie biblioteki DB varlen -1 do SQL_VARLEN_DATA i dowolne varlen specyfikacje 0 do SQL_NULL_DATA.

  • The DB-Library bcp_colfmtfile_collen and the ODBC bcp_colfmtcbUserData have the same issue as the bcp_bindvarlen and cbData parameters noted above.Zmienić wszystkie biblioteki DB file_collen -1 do SQL_VARLEN_DATA i dowolne file_collen specyfikacje 0 do SQL_NULL_DATA.

  • IValue parametr ODBC bcp_control funkcja jest wskaźnik void.W bibliotece DB iValue jest liczbą całkowitą.Rzutowanie wartości dla ODBC iValue do void *.

  • Bcp_control opcja BCPMAXERRS określa liczbę pojedynczych wierszy może mieć błędy przed kopiowanie masowe operacja kończy się niepowodzeniem.Domyślnie dla BCPMAXERRS w wersja biblioteki DB jest 0 (niepowodzenie przy pierwszym błędzie) bcp_control i 10 w wersja ODBC.Biblioteki DB aplikacji, które zależą od domyślnego 0, aby zakończyć operacji kopiowania luzem musi zostać zmieniona na wywołanie ODBC bcp_control do zestaw BCPMAXERRS na 0.

  • ODBC bcp_control funkcja obsługuje następujące opcje nie są obsługiwane przez wersja biblioteki DB bcp_control:

    • BCPODBC

      Gdy zestaw na wartość TRUE, określa, że datetime i smalldatetime wartości zapisane w formacie znak będzie miał ODBC sygnatury czasowej escape sekwencji prefiks i sufiks.Dotyczy to tylko operacje BCP_OUT.

      Z BCPODBC zestaw na FALSE, datetime wartości konwertowane na ciąg znaków jest wyświetlany jako:

      1997-01-01 00:00:00.000
      

      Z BCPODBC zestaw ma wartość TRUE, tym samym datetime wartość jest wyświetlany jako:

      {ts '1997-01-01 00:00:00.000' }
      
    • BCPKEEPIDENTITY

      Gdy zestaw na wartość TRUE, określa, że funkcji kopiowania luzem wstawić wartości danych dostarczanych dla kolumn z ograniczeniami tożsamości.Jeśli nie jest zestaw, generowane są nowe wartości tożsamości wstawionych wierszy.

    • BCPHINTS

      Określa różne kopiowanie masowe optymalizacje.Tej opcji nie można używać w wersji 6.5 lub starszej SQL Server.

    • BCPFILECP

      Określa strona kodowa kopiowanie masowe pliku.

    • BCPUNICODEFILE

      Określa, że tryb znakowy kopiowanie masowe plik jest plikiem Unicode.

  • ODBC bcp_colfmt nie obsługuje funkcja typ_pliku wskaźnik SQLCHAR ponieważ powoduje konflikt z elementem typedef ODBC SQLCHAR.Zamiast tego użyj SQLCHARACTER dla bcp_colfmt.

  • W wersjach ODBC kopiowanie masowe funkcje, format do pracy z datetime i smalldatetime wartości ciągów znaków jest formatu ODBC rrrr mm-dd hh:mm:ss.sss; smalldatetime wartości należy użyć formatu ODBC rrrr mm-dd ss.

    Wersji biblioteki DB kopiowanie masowe zaakceptować funkcje datetime i smalldatetime wartości ciągów znaków przy użyciu kilku różnych formatach:

    • Formatem domyślnym jest mmm dd rrrr hh:mmxx gdzie xx AM lub PM.

    • DATETIME i smalldatetime znakowe ciągi w dowolnym formacie obsługiwane przez biblioteki DB dbconvert funkcja.

    • Gdy Użyj ustawień międzynarodowych jest zaznaczone na biblioteki DB Opcje karcie SQL Server klient Network Utility, biblioteki DB kopiowanie masowe funkcje również zaakceptować data w formacie data regionalne zdefiniowane dla ustawienia regionalne rejestru komputera klienckiego.

    Biblioteka DB kopiowanie masowe funkcje nie akceptuje ODBC datetime i smalldatetime formatów.

    Jeśli atrybut instrukcja SQL_SOPT_SS_REGIONALIZE zestaw SQL_RE_ON, funkcji ODBC zbiorczego kopiowania zaakceptować data w formacie data regionalnych określonych ustawienia regionalne dla zestawting rejestru komputera klient.

  • Podczas wyprowadzania pieniędzy wartości w formacie znaku, ODBC kopiowanie masowe funkcje dostaw czterech cyfr dokładności i nie przecinków jako separatorów; Wersji biblioteki DB tylko dostawy z dokładnością do dwóch cyfr i zawierać przecinków jako separatorów.