Delen via


Parameterwaarden instellen

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.