SQLBindParameter

van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

SQLBindParameter kan de last van dataconversie elimineren wanneer het wordt gebruikt om data te leveren voor de SQL Server Native Client ODBC-driver, wat resulteert in aanzienlijke prestatieverbeteringen voor zowel de client- als servercomponenten van applicaties. Andere voordelen zijn onder meer verminderd verlies van precisie bij het invoegen of bijwerken van benaderende numerieke datatypes.

Note

Bij het invoegen van char - en wchar-type data in een afbeeldingskolom wordt de grootte van de doorgegeven data gebruikt, in tegenstelling tot de grootte van de data na de conversie naar een binair formaat.

Als de SQL Server Native Client ODBC-driver een fout tegenkomt op een enkel array-element van een array parameters, blijft de driver de instructie uitvoeren voor de resterende array-elementen. Als de applicatie een array van parameterstatus-elementen voor de instructie heeft begrensd, kunnen de rijen parameters die fouten genereren uit de array worden bepaald.

Bij gebruik van de SQL Server Native Client ODBC-driver, specificeer SQL_PARAM_INPUT bij het koppelen van invoerparameters. Specificeer alleen SQL_PARAM_OUTPUT of SQL_PARAM_INPUT_OUTPUT bij het binden van opgeslagen procedureparameters die met het OUTPUT-sleutelwoord zijn gedefinieerd.

SQLRowCount is onbetrouwbaar met de SQL Server Native Client ODBC-driver als een array-element van een bound-parameter array een fout veroorzaakt in de uitvoering van een statement. Het ODBC-statement-attribuut SQL_ATTR_PARAMS_PROCESSED_PTR rapporteert het aantal rijen dat is verwerkt voordat de fout optreedt. De applicatie kan vervolgens zijn parameterstatusarray doorlopen om het aantal succesvol uitgevoerde statements te ontdekken, indien nodig.

Bindingsparameters voor SQL-tekentypes

Als het doorgegeven SQL-datatype een tekentype is, is ColumnSize de grootte in tekens (niet bytes). Als de lengte van de datastring in bytes groter is dan 8000, moet ColumnSize worden ingesteld op SQL_SS_LENGTH_UNLIMITED, wat aangeeft dat er geen limiet is aan de grootte van het SQL-type.

Als bijvoorbeeld het SQL-datatype SQL_WVARCHAR is, mag ColumnSize niet groter zijn dan 4000. Als de werkelijke datalengte groter is dan 4000, moet ColumnSize worden ingesteld op SQL_SS_LENGTH_UNLIMITED zodat nvarchar(max) door de driver wordt gebruikt.

SQLBindParameter en Table-Valued parameters

Net als andere parametertypen zijn tabelwaardige parameters gebonden aan SQLBindParameter.

Nadat een tabelwaardige parameter is gebonden, worden ook de kolommen gebonden. Om de kolommen te binden, roep je SQLSetStmtAttr aan om SQL_SOPT_SS_PARAM_FOCUS te zetten op de ordinaal van de tabelwaardige parameter. Roep vervolgens SQLBindParameter aan voor elke kolom in de tabel-waarde parameter. Om terug te keren naar de parameterbindings op het hoogste niveau, zet SQL_SOPT_SS_PARAM_FOCUS op 0.

Voor informatie over het toewijzen van parameters aan descriptorvelden voor tabelwaardige parameters, zie Binding en gegevensoverdracht van Table-Valued parameters en kolomwaarden.

Voor meer informatie over tabelwaardige parameters, zie Table-Valued Parameters (ODBC).

SQLBindParameter-ondersteuning voor verbeterde datum- en tijdfuncties

Parameterwaarden van datum-/tijdtypen worden geconverteerd zoals beschreven in Conversies van C naar SQL. Let op dat parameters van type tijd en datum-tijd-offsetValueType moeten hebben gespecificeerd als SQL_C_DEFAULT of SQL_C_BINARY als hun bijbehorende structuren (SQL_SS_TIME2_STRUCT en SQL_SS_TIMESTAMPOFFSET_STRUCT) worden gebruikt.

Zie ODBC-(Datum- en tijdverbeteringen) voor meer informatie.

SQLBindParameter ondersteuning voor grote CLR UDT's

SQLBindParameter ondersteunt grote CLR-gebruikersgedefinieerde types (UDT's). Zie ODBC-(Large CLR User-Defined Types) voor meer informatie.