Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform System (PDW)
Parameters worden in de commandotekst gemarkeerd met het vraagteken. Bijvoorbeeld, de volgende SQL-instructie is gemarkeerd voor één enkele invoerparameter:
{call SalesByCategory('Produce', ?)}
Om de prestaties te verbeteren door het netwerkverkeer te verminderen, leidt de SQL Server Native Client OLE DB-provider niet automatisch parameterinformatie af, tenzij ICommandWithParameters::GetParameterInfo of ICommandPrepare::P repare wordt aangeroepen voordat een commando wordt uitgevoerd. Dit betekent dat de SQL Server Native Client OLE DB-provider niet automatisch:
Controleer de juistheid van het datatype dat is gespecificeerd met ICommandWithParameters::SetParameterInfo.
Kaart van het DBTYPE dat in de accessor-binding is gespecificeerd naar het juiste SQL Server-datatype voor de parameter.
Applicaties kunnen mogelijke fouten of verlies van precisie ontvangen met een van deze methoden als ze datatypes specificeren die niet compatibel zijn met het SQL Server-datatype van de parameter.
Om te voorkomen dat dit gebeurt, moet de applicatie:
Zorg ervoor dat pwszDataSourceType overeenkomt met het SQL Server-datatype voor de parameter als je ICommandWithParameters::SetParameterInfo hard codeert.
Zorg ervoor dat de DBTYPE-waarde die aan de parameter wordt gebonden hetzelfde type is als het SQL Server-datatype voor de parameter als je een accessor hardcodeert.
Codeer de applicatie zodat deze ICommandWithParameters::GetParameterInfo aanroept, zodat de provider dynamisch de SQL Server-datatypes van de parameters kan verkrijgen. Let op: dit veroorzaakt een extra netwerkretour naar de server.
Note
De provider ondersteunt geen aanroep van ICommandWithParameters::GetParameterInfo voor een SQL Server UPDATE of DELETE statement met een FROM-clausule; voor elke SQL-instructie die afhankelijk is van een subquery met parameters; voor SQL-statements die parametermarkers bevatten in zowel expressies van een vergelijking, zoals, als gekwantificeerd predicaat; of queries waarbij een van de parameters een parameter is voor een functie. Bij het verwerken van een batch SQL-statements ondersteunt de provider ook geen ICommandWithParameters::GetParameterInfo voor parametermarkers in statements na de eerste instructie in de batch. Reacties (/* */) zijn niet toegestaan in het Transact-SQL-commando.
De SQL Server Native Client OLE DB-provider ondersteunt invoerparameters in SQL-instructiecommando's. Bij procedure-aanroepcommando's ondersteunt de SQL Server Native Client OLE DB-provider invoer-, uitvoer- en invoer-/uitvoerparameters. Outputparameters worden aan de applicatie teruggegeven bij uitvoering (alleen als er geen rijsets worden teruggegeven) of wanneer alle teruggestuurde rijsets door de applicatie zijn uitgeput. Om ervoor te zorgen dat geretourneerde waarden geldig zijn, gebruik IMultipleResults om het gebruik van de rijverzameling af te dwingen.
De namen van parameters van opgeslagen procedures hoeven niet te worden gespecificeerd in een DBPARAMBINDINFO-structuur. Gebruik NULL voor de waarde van het pwszName-lid om aan te geven dat de SQL Server Native Client OLE DB-provider de parameternaam moet negeren en alleen het ordinaal moet gebruiken dat is gespecificeerd in het rgParamOrdinals-lid van ICommandWithParameters::SetParameterInfo. Als de commandotekst zowel benoemde als naamloze parameters bevat, moeten alle naamloze parameters worden gespecificeerd vóór eventuele benoemde parameters.
Als de naam van een stored procedure-parameter wordt gespecificeerd, controleert de SQL Server Native Client OLE DB-provider de naam om te verzekeren dat deze geldig is. De SQL Server Native Client OLE DB-provider geeft een foutmelding wanneer hij een foutieve parameternaam van de consument ontvangt.
Note
Om ondersteuning voor SQL Server XML en door gebruikers gedefinieerde types (UDT) te bieden, implementeert de SQL Server Native Client OLE DB-provider een nieuwe ISSCommandWithParameters-interface.