Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Ogólnie rzecz biorąc, należy rozważyć konsekwencje stosowania SQLBindCol w celu wywołania konwersji danych. Konwersje wiązań są procesami klienckimi, więc na przykład pobranie wartości zmiennoprzecinkowej przypisanej do kolumny znakowej powoduje, że sterownik wykonuje konwersję float-to-character lokalnie po pobraniu wiersza. Funkcja Transact-SQL CONVERT może być użyta do nałożenia kosztu konwersji danych na serwerze.
Instancja SQL Server może zwracać wiele zestawów wierszy wyników podczas wykonania jednej instrukcji. Każdy zbiór wyników musi być ograniczony osobno. Więcej informacji o wiązaniu dla wielu zbiorów wyników można znaleźć w SQLMoreResults.
Programista może przypisać kolumny do specyficznych dla SQL Server typów danych C za pomocą wartości TargetTypeSQL_C_BINARY. Kolumny powiązane z typami specyficznymi dla SQL Server nie są przenośne. Zdefiniowane SQL Server-specyficzne typy danych ODBC C odpowiadają definicjom typów dla DB-Library, a DB-Library deweloperzy portujący aplikacje mogą chcieć skorzystać z tej funkcji.
Raportowanie skracania danych to kosztowny proces dla sterownika ODBC dla natywnego klienta SQL Server. Możesz uniknąć obcięcia, upewniając się, że wszystkie powiązane bufory danych są wystarczająco szerokie, by zwracać dane. Dla danych znaków szerokość powinna zawierać miejsce na terminator ciągu znaków, gdy używane jest domyślne zachowanie sterownika dla zakończenia ciągu znaków. Na przykład powiązanie kolumny SQL Server char(5) z tablicą pięciu znaków skutkuje obcięciem dla każdej pobranej wartości. Przypisanie tej samej kolumny do tablicy sześciu znaków unika obcięcia, dostarczając element znakowy do przechowywania terminatora zerowego. SQLGetData może być używany do efektywnego pobierania długich znaków i danych binarnych bez obcinania.
Dla typów danych o dużych wartościach, jeśli bufor dostarczony przez użytkownika nie jest wystarczająco duży, by pomieścić całą wartość kolumny, zwraca się SQL_SUCCESS_WITH_INFO oraz "dane łańcuchowe; Ostrzeżenie o prawej redukcji". Argument StrLen_or_IndPtr będzie zawierał liczbę znaków/bajtów przechowywanych w buforze.
Wsparcie SQLBindCol dla ulepszonych funkcji daty i godziny
Wartości kolumn wyników typów dat/godziny są konwertowane zgodnie z opisem w Konwersjach z SQL do C. Należy zauważyć, że aby pobrać kolumny czasu i daty czasoprzesunięcia jako odpowiadających im struktur (SQL_SS_TIME2_STRUCT i SQL_SS_TIMESTAMPOFFSET_STRUCT), Typ Celu musi być określony jako SQL_C_DEFAULT lub SQL_C_BINARY.
Aby uzyskać więcej informacji, zobacz ulepszenia daty i godziny (ODBC).
Wsparcie SQLBindCol dla dużych CLR UDT
SQLBindCol obsługuje duże typy CLR zdefiniowane przez użytkownika (UDT). Aby uzyskać więcej informacji, zobacz large CLR User-Defined Types (ODBC).