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 Systeem (PDW)
SQL-database in Microsoft Fabric
OLE DB-stuurprogramma downloaden
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 OLE DB-driver voor SQL Server niet automatisch parameterinformatie af, tenzij ICommandWithParameters::GetParameterInfo of ICommandPrepare::P repare wordt aangeroepen voordat een commando wordt uitgevoerd. Dit betekent dat de OLE DB-driver voor SQL Server 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.
Opmerking
De provider ondersteunt geen aanroep van ICommandWithParameters::GetParameterInfo voor elke SQL Server UPDATE- of DELETE-instructie met een FROM-clausule; voor elke SQL-instructie die afhankelijk is van een subquery met parameters; voor SQL-instructies die parametermarkers bevatten in beide uitdrukkingen van een vergelijking, zoals, of 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 OLE DB Driver voor SQL Server ondersteunt invoerparameters in SQL-instructiecommando's. Bij procedure-aanroepcommando's ondersteunt de OLE DB Driver voor SQL Server 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 OLE DB-driver voor SQL Server 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 OLE DB Driver voor SQL Server de naam om te controleren of deze geldig is. De OLE DB Driver voor SQL Server geeft een foutmelding wanneer deze een foutieve parameternaam van de consument ontvangt.
Opmerking
Om ondersteuning voor SQL Server XML en door de gebruiker gedefinieerde types (UDT) te bieden, implementeert de OLE DB Driver voor SQL Server een nieuwe ISSCommandWithParameters-interface .