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.
Als u de waarde van een parameter wilt instellen, stelt de toepassing gewoon de waarde van de variabele in die is gebonden aan de parameter. Het is niet belangrijk wanneer deze waarde is ingesteld, zolang deze is ingesteld voordat de instructie wordt uitgevoerd. De toepassing kan de waarde instellen voor of na het binden van de variabele en kan de waarde zo vaak wijzigen als deze wil. Wanneer de instructie wordt uitgevoerd, haalt het stuurprogramma gewoon de huidige waarde van de variabele op. Dit is met name handig wanneer een voorbereide instructie meer dan één keer wordt uitgevoerd; de toepassing stelt nieuwe waarden in voor sommige of alle variabelen telkens wanneer de instructie wordt uitgevoerd. Zie Voorbereide uitvoering eerder in deze sectie voor een voorbeeld hiervan.
Als een lengte/indicatorbuffer is gebonden in de aanroep naar SQLBindParameter, moet deze worden ingesteld op een van de volgende waarden voordat de instructie wordt uitgevoerd:
De bytelengte van de gegevens in de afhankelijke variabele. Het stuurprogramma controleert deze lengte alleen als de variabele teken of binair is (ValueType is SQL_C_CHAR of SQL_C_BINARY).
SQL_NTS. De gegevens zijn een tekenreeks die door null is beëindigd.
SQL_NULL_DATA. De gegevenswaarde is NULL en het stuurprogramma negeert de waarde van de afhankelijke variabele.
SQL_DATA_AT_EXEC of het resultaat van de macro SQL_LEN_DATA_AT_EXEC. De waarde van de parameter moet worden verzonden met SQLPutData. Zie Lange gegevens verzenden verderop in deze sectie voor meer informatie.
In de volgende tabel ziet u de waarden van de afhankelijke variabele en de lengte/indicatorbuffer die door de toepassing wordt ingesteld voor verschillende parameterwaarden.
| Kenmerk waarde |
Kenmerk (SQL) data type |
Variabele (C) data type |
Waarde in gebonden variable |
Waarde in lengte/indicator buffer[d] |
|---|---|---|---|---|
| "ABC" | SQL_CHAR | SQL_C_CHAR | ABC\0[a] | SQL_NTS of 3 |
| 10 | SQL_INTEGER | SQL_C_SLONG | 10 | -- |
| 10 | SQL_INTEGER | SQL_C_CHAR | 10\0[a] | SQL_NTS of 2 |
| 13:00 uur | SQL_TYPE_TIME | SQL_C_TYPE_TIME | 13,0,0[b] | -- |
| 13:00 uur | SQL_TYPE_TIME | SQL_C_CHAR | {t '13:00:00'}\0[a], [c] | SQL_NTS of 14 |
| NUL | SQL_SMALLINT | SQL_C_SSHORT | -- | SQL_NULL_DATA |
[a] "\0" vertegenwoordigt een nulterminatieteken. Het nulbeëindigingskarakter is alleen vereist als de waarde in de lengte/indicatorbuffer SQL_NTS is.
[b] De getallen in deze lijst zijn de getallen die zijn opgeslagen in de velden van de TIME_STRUCT structuur.
[c] De tekenreeks maakt gebruik van de ODBC-datum-escape-component. Zie Datum, tijd en letterlijke tijd voor meer informatie.
[d] Stuurprogramma's moeten deze waarde altijd controleren om te zien of het een speciale waarde is, zoals SQL_NULL_DATA.
Wat een stuurprogramma doet met een parameterwaarde tijdens de uitvoering, is afhankelijk van het stuurprogramma. Indien nodig converteert het stuurprogramma de waarde van het gegevenstype C en de bytelengte van de afhankelijke variabele naar het SQL-gegevenstype, de precisie en de schaal van de parameter. In de meeste gevallen verzendt het stuurprogramma vervolgens de waarde naar de gegevensbron. In sommige gevallen wordt de waarde opgemaakt als tekst en ingevoegd in de SQL-instructie voordat de instructie naar de gegevensbron wordt verzonden.