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)
SQLBindParameter eliminuje obciążenie konwersją danych, gdy jest używany do dostarczania danych do sterownika ODBC dla natywnego klienta SQL Server, co skutkuje znaczącymi poprawami wydajności zarówno dla komponentów klientowych, jak i serwerowych aplikacji. Inne korzyści to mniejsza utrata precyzji przy wstawianiu lub aktualizacji przybliżonych typów danych numerycznych.
Note
Podczas wstawiania danych typu char i wchar do kolumny obrazu stosuje się rozmiar przesyłanych danych, zamiast rozmiaru danych po konwersji do formatu binarnego.
Jeśli sterownik ODBC natywnego klienta SQL Server napotka błąd na jednym elemencie tablicy z tablicy parametrów, sterownik kontynuuje wykonywanie polecenia dla pozostałych elementów tablicy. Jeśli aplikacja ograniczyła tablicę elementów statusu parametrów dla danego zatwierdzenia, wiersze parametrów generujących błędy można określić na podstawie tablicy.
Używając sterownika ODBC SQL Server Native Client, określ SQL_PARAM_INPUT przy wiązaniu parametrów wejściowych. Określaj SQL_PARAM_OUTPUT lub SQL_PARAM_INPUT_OUTPUT tylko przy wiązaniu parametrów procedur przechowywanych zdefiniowanych słowem kluczowym OUTPUT.
SQLRowCount jest niewiarygodny w przypadku sterownika ODBC dla natywnego klienta SQL Server, jeśli element tablicy z parametrami bound-parameter powoduje błąd w wykonywaniu instrukcji. Atrybut instrukcji ODBC SQL_ATTR_PARAMS_PROCESSED_PTR raportuje liczbę przetworzonych wierszy przed wystąpieniem błędu. Aplikacja może następnie przeszukać tablicę statusu parametrów, aby w razie potrzeby odkryć liczbę poprawnie wykonanych instrukcji.
Parametry wiązania dla typów znaków SQL
Jeśli przesłany typ danych SQL jest typem znaku, ColumnSize to rozmiar w znakach (nie bajtach). Jeśli długość ciągu danych w bajtach przekracza 8000, ColumnSize powinien być ustawiony na SQL_SS_LENGTH_UNLIMITED, co oznacza, że nie ma ograniczenia rozmiaru typu SQL.
Na przykład, jeśli typ danych SQL jest SQL_WVARCHAR, ColumnSize nie powinien przekraczać 4000. Jeśli rzeczywista długość danych przekracza 4000, to ColumnSize powinien być ustawiony na SQL_SS_LENGTH_UNLIMITED , aby nvarchar(max) był używany przez sterownik.
Parametry SQLBindParameter i Table-Valued
Podobnie jak inne typy parametrów, parametry tabelowe są ograniczone przez SQLBindParametr.
Po ograniczeniu parametru tabelowego również jego kolumny są ograniczone. Aby powiązać kolumny, wywołujesz SQLSetStmtAttr , aby ustawić SQL_SOPT_SS_PARAM_FOCUS na porządkowy parametr tabelowy. Następnie wywołaj SQLBindParameter dla każdej kolumny parametru tabelowego. Aby powrócić do wiązań parametrów najwyższego poziomu, ustaw SQL_SOPT_SS_PARAM_FOCUS na 0.
Aby uzyskać informacje o mapowaniu parametrów na pola deskryptorów parametrów tabelowych, zobacz Binding and Data Transfer of Table-Valued Parameters and Column Values.
Więcej informacji o parametrach tabelowych można znaleźć w Table-Valued Parameters (ODBC).
Wsparcie SQLBindParameter dla rozszerzonych funkcji daty i godziny
Wartości parametrów typów daty/godziny są konwertowane zgodnie z opisem w Konwersje z języka C naSQL . Należy zauważyć, że parametry typu czas i datetimeoffset muszą mieć ValueType określony jako SQL_C_DEFAULT lub SQL_C_BINARY , jeśli używane są odpowiadające im struktury (SQL_SS_TIME2_STRUCT i SQL_SS_TIMESTAMPOFFSET_STRUCT).
Aby uzyskać więcej informacji, zobacz ulepszenia daty i godziny (ODBC).
Obsługa SQLBindParameter dla dużych CLR UDT
SQLBindParameter obsługuje duże typy CLR zdefiniowane przez użytkownika (UDT). Aby uzyskać więcej informacji, zobacz large CLR User-Defined Types (ODBC).