Not
Åtkomst till denna sida kräver auktorisation. Du kan prova att logga in eller byta katalog.
Åtkomst till denna sida kräver auktorisation. Du kan prova att byta katalog.
För att ange värdet för en parameter anger programmet helt enkelt värdet för variabeln som är bunden till parametern. Det är inte viktigt när det här värdet anges, så länge det anges innan instruktionen körs. Programmet kan ange värdet före eller efter bindning av variabeln och det kan ändra värdet så många gånger som det vill. När instruktionen körs hämtar drivrutinen helt enkelt variabelns aktuella värde. Detta är särskilt användbart när en förberedd instruktion körs mer än en gång. programmet anger nya värden för vissa eller alla variabler varje gång instruktionen körs. Ett exempel på detta finns i Förberedd körning tidigare i det här avsnittet.
Om en längd-/indikatorbuffert var bunden i anropet till SQLBindParameter måste den anges till något av följande värden innan -instruktionen körs:
Bytelängden för data i den bundna variabeln. Drivrutinen kontrollerar endast den här längden om variabeln är tecken eller binär (ValueType är SQL_C_CHAR eller SQL_C_BINARY).
SQL_NTS. Data är en null-avslutad sträng.
SQL_NULL_DATA. Datavärdet är NULL och drivrutinen ignorerar värdet för den bundna variabeln.
SQL_DATA_AT_EXEC eller resultatet av makrot SQL_LEN_DATA_AT_EXEC. Värdet för parametern ska skickas med SQLPutData. Mer information finns i Skicka långa data senare i det här avsnittet.
I följande tabell visas värdena för den bundna variabeln och den längd/indikatorbuffert som programmet anger för en mängd olika parametervärden.
| Parameter värde |
Parameter (SQL) datatyp |
Variabel (C) datatyp |
Värde i bunden variable |
Värde i längd/indikator buffer[d] |
|---|---|---|---|---|
| "ABC" | SQL_CHAR | SQL_C_CHAR | ABC\0[a] | SQL_NTS eller 3 |
| 10 | SQL_INTEGER | SQL_C_SLONG | 10 | -- |
| 10 | SQL_INTEGER | SQL_C_CHAR | 10\0[a] | SQL_NTS eller 2 |
| 13.00. | SQL_TYPE_TIME | SQL_C_TYPE_TIME | 13,0,0[b] | -- |
| 13.00. | SQL_TYPE_TIME | SQL_C_CHAR | {t '13:00:00'}\0[a], [c] | SQL_NTS eller 14 |
| NOLL | SQL_SMALLINT | SQL_C_SSHORT | -- | SQL_NULL_DATA |
[a] "\0" representerar ett nulltermineringstecken. Null-avslutningstecknet krävs endast om värdet i längd-/indikatorbufferten är SQL_NTS.
[b] Talen i den här listan är talen som lagras i fälten i TIME_STRUCT struktur.
[c] Strängen använder ODBC-datumrymningssatsen. Mer information finns i Datum, Tid och TidsstämpelLiteraler.
[d] Drivrutiner måste alltid kontrollera det här värdet för att se om det är ett särskilt värde, till exempel SQL_NULL_DATA.
Vad en drivrutin gör med ett parametervärde vid körning är drivrutinsberoende. Vid behov konverterar drivrutinen värdet från C-datatypen och bytelängden för den bundna variabeln till SQL-datatypen, precisionen och skalan för parametern. I de flesta fall skickar drivrutinen sedan värdet till datakällan. I vissa fall formaterar det värdet som text och infogar det i SQL-instruktionen innan instruktionen skickas till datakällan.