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.
Een parameter is een variabele in een SQL-instructie. Stel dat een tabel Onderdelen kolommen bevat met de naam PartID, Description en Price. Als u een onderdeel zonder parameters wilt toevoegen, moet u een SQL-instructie maken, zoals:
INSERT INTO Parts (PartID, Description, Price) VALUES (2100, 'Drive shaft', 50.00)
Hoewel deze instructie een nieuwe volgorde invoegt, is het geen goede oplossing voor een orderinvoertoepassing omdat de waarden die moeten worden ingevoegd, niet in code in de toepassing kunnen worden vastgelegd. Een alternatief is het maken van de SQL-instructie tijdens runtime, met behulp van de waarden die moeten worden ingevoegd. Dit is ook geen goede oplossing, vanwege de complexiteit van het bouwen van instructies tijdens runtime. De beste oplossing is om de elementen van de VALUES-component te vervangen door vraagtekens (?) of parametermarkeringen:
INSERT INTO Parts (PartID, Description, Price) VALUES (?, ?, ?)
De parametermarkeringen zijn vervolgens gebonden aan toepassingsvariabelen. Als u een nieuwe rij wilt toevoegen, hoeft de toepassing alleen de waarden van de variabelen in te stellen en de instructie uit te voeren. Het stuurprogramma haalt vervolgens de huidige waarden van de variabelen op en verzendt deze naar de gegevensbron. Als de instructie meerdere keren wordt uitgevoerd, kan de toepassing het proces nog efficiënter maken door de instructie voor te bereiden.
De zojuist weergegeven instructie is mogelijk vastgelegd in een orderinvoertoepassing om een nieuwe rij in te voegen. Parametermarkeringen zijn echter niet beperkt tot verticale toepassingen. Voor elke toepassing maken ze de problemen met het maken van SQL-instructies tijdens runtime gemakkelijker door conversies naar en van tekst te vermijden. De onderdeel-id die zojuist wordt weergegeven, wordt bijvoorbeeld waarschijnlijk opgeslagen in de toepassing als een geheel getal. Als de SQL-instructie is samengesteld zonder parametermarkeringen, moet de toepassing de deel-id converteren naar tekst en moet de gegevensbron deze weer converteren naar een geheel getal. Met behulp van een parametermarkering kan de toepassing de onderdeel-id naar het stuurprogramma verzenden als een geheel getal, wat meestal als geheel getal naar de gegevensbron kan worden verzonden. Hiermee worden twee conversies opgeslagen. Voor lange gegevenswaarden is dit erg belangrijk, omdat de tekstvormen van dergelijke waarden vaak de toegestane lengte van een SQL-instructie overschrijden.
Parameters zijn alleen geldig op bepaalde plaatsen in SQL-instructies. Ze zijn bijvoorbeeld niet toegestaan in de selectielijst (de lijst met kolommen die moeten worden geretourneerd door een SELECT-instructie ), noch zijn ze toegestaan als beide operanden van een binaire operator, zoals het gelijkteken (=), omdat het onmogelijk zou zijn om het parametertype te bepalen. Over het algemeen zijn parameters alleen geldig in DML-instructies (Data Manipulation Language) en niet in DDL-instructies (Data Definition Language). Zie Parametermarkeringen in bijlage C: SQL-grammatica voor meer informatie.
Wanneer de SQL-instructie een procedure aanroept, kunnen benoemde parameters worden gebruikt. Benoemde parameters worden geïdentificeerd door hun namen, niet door hun positie in de SQL-instructie. Ze kunnen worden gebonden door een aanroep naar SQLBindParameter, maar de parameter wordt geïdentificeerd door het SQL_DESC_NAME veld van de IPD (implementatieparameter descriptor), niet door het argument ParameterNumber van SQLBindParameter. Ze kunnen ook worden gebonden door SQLSetDescField of SQLSetDescRec aan te roepen. Zie Bindingparameters op naam (benoemde parameters) verderop in deze sectie voor meer informatie over benoemde parameters. Zie Descriptors voor meer informatie over descriptors.
Deze sectie bevat de volgende onderwerpen.