Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
SQLBindParameter kan eliminera bördan av datakonvertering när den används för att tillhandahålla data till SQL Server Native Client ODBC-drivrutinen, vilket resulterar i betydande prestandaförbättringar för både klient- och serverkomponenterna i applikationer. Andra fördelar inkluderar minskad förlust av precision vid insättning eller uppdatering av ungefärliga numeriska datatyper.
Note
När char - ochwchar-typ data infogas i en bildkolumn används storleken på den data som skickas in, istället för storleken på datan efter konvertering till binärt format.
Om SQL Server Native Client ODBC-drivrutinen stöter på ett fel på ett enda arrayelement i en array av parametrar, fortsätter drivrutinen att exekvera satsen för de återstående arrayelementen. Om applikationen har bundit en array av parameterstatuselement för satsen kan raderna av parametrar som genererar fel bestämmas från arrayen.
När du använder den SQL Server Native Client ODBC-drivrutinen, ange SQL_PARAM_INPUT när du binder inmatningsparametrar. Ange endast SQL_PARAM_OUTPUT eller SQL_PARAM_INPUT_OUTPUT när du binder lagrade procedurparametrar definierade med OUTPUT-nyckelordet.
SQLRowCount är opålitligt med SQL Server Native Client ODBC-drivrutinen om ett arrayelement i en bound-parameter-array orsakar ett fel i satsexekveringen. ODBC-satsattributet SQL_ATTR_PARAMS_PROCESSED_PTR rapporterar antalet rader som bearbetats innan felet uppstår. Applikationen kan sedan gå igenom sin parameterstatusarray för att upptäcka antalet satser som körts framgångsrikt, om det behövs.
Bindningsparametrar för SQL-teckentyper
Om SQL-datatypen som skickas in är en teckentyp, är ColumnSize storleken i tecken (inte bytes). Om längden på datasträngen i byte är större än 8000 bör ColumnSize sättas till SQL_SS_LENGTH_UNLIMITED, vilket indikerar att det inte finns någon gräns för SQL-typens storlek.
Till exempel, om SQL-datatypen är SQL_WVARCHAR, bör ColumnSize inte vara större än 4000. Om den faktiska datastorleken är större än 4000 bör ColumnSize sättas till SQL_SS_LENGTH_UNLIMITED så att nvarchar(max) används av drivrutinen.
SQLBindParameter och Table-Valued Parametrar
Liksom andra parametertyper är tabellvärda parametrar bundna av SQLBindParameter.
Efter att en tabellvärd parameter har bundits, är även dess kolumner bundna. För att binda kolumnerna anropar du SQLSetStmtAttr för att sätta SQL_SOPT_SS_PARAM_FOCUS till ordningstalet för tabellvärda parametern. Anropa sedan SQLBindParameter för varje kolumn i tabellvärda parametern. För att återgå till parameterbindningarna på toppnivå, sätt SQL_SOPT_SS_PARAM_FOCUS till 0.
För information om hur parametrar mappas till deskriptorfält för tabellvärda parametrar, se Binding and Data Transfer of Table-Valued Parameters and Column Values.
För mer information om tabellvärda parametrar, se Table-Valued Parameters (ODBC).
SQLBindParameter-stöd för förbättrade datum- och tidsfunktioner
Parametervärden för datum/tid-typer konverteras enligt beskrivningen i Konverteringar från C till SQL. Observera att parametrar av typ tid och datumtidsavvikling måste ha ValueType specificerad som SQL_C_DEFAULT eller SQL_C_BINARY om deras motsvarande strukturer (SQL_SS_TIME2_STRUCT och SQL_SS_TIMESTAMPOFFSET_STRUCT) används.
Mer information finns i Förbättringar av datum och tid (ODBC).
SQLBindParameter-stöd för stora CLR UDT:er
SQLBindParameter stöder stora CLR-användardefinierade typer (UDT). Mer information finns i Large CLR User-Defined Types (ODBC).