Megosztás:


Paraméterértékek beállítása

Egy paraméter értékének beállításához az alkalmazás egyszerűen beállítja a paraméterhez kötött változó értékét. Az érték beállításakor nem fontos, amíg az utasítás végrehajtása előtt be van állítva. Az alkalmazás beállíthatja az értéket a változó kötése előtt vagy után, és annyiszor módosíthatja az értéket, amennyit csak akar. Az utasítás végrehajtásakor az illesztő egyszerűen lekéri a változó aktuális értékét. Ez különösen akkor hasznos, ha egy előkészített utasítást többször hajtanak végre; az alkalmazás az utasítás végrehajtásakor új értékeket állít be néhány vagy az összes változóhoz. Erre példa: Előkészített végrehajtás, a szakasz korábbi szakaszában.

Ha az SQLBindParameter hívásában hossz-/mutatópuffert kötöttek, az utasítás végrehajtása előtt az alábbi értékek egyikére kell állítani:

  • A kötött változóban lévő adatok bájthossza. Az illesztőprogram csak akkor ellenőrzi ezt a hosszt, ha a változó karakter vagy bináris (a ValueType SQL_C_CHAR vagy SQL_C_BINARY).

  • SQL_NTS. Az adat egy nullával lezárt karaktersorozat.

  • SQL_NULL_DATA. Az adatérték NULL, az illesztő pedig figyelmen kívül hagyja a kötött változó értékét.

  • SQL_DATA_AT_EXEC vagy az SQL_LEN_DATA_AT_EXEC makró eredménye. A paraméter értékét az SQLPutData használatával kell elküldeni. További információ: Hosszú adatok küldése a szakasz későbbi részében.

Az alábbi táblázat a kötött változó és a hossz/mutató puffer értékeit mutatja be, amelyeket az alkalmazás különböző paraméterértékekhez állít be.

Paraméter

value
Paraméter

(SQL)

adattípus
Változó (C)

adattípus
Érték a következőben:

határ

változó
Érték a következőkben:

hossz/mutató

puffer[d]
"ABC" SQL_CHAR SQL_C_CHAR ABC\0[a] SQL_NTS vagy 3
10 SQL_INTEGER SQL_C_SLONG 10 --
10 SQL_INTEGER SQL_C_CHAR 10\0[a] SQL_NTS vagy 2
13:00 SQL_TYPE_TIME SQL_C_TYPE_TIME 13,0,0[b] --
13:00 (délután) SQL_TYPE_TIME SQL_C_CHAR {t '13:00:00'}\0[a], [c] SQL_NTS vagy 14
NULLA SQL_SMALLINT SQL_C_SSHORT -- SQL_NULL_DATA

[a] "\0" null-végződésű karaktert jelöl. A null-végződtetési karakter csak akkor szükséges, ha a hossz-/mutatópuffer értéke SQL_NTS.

[b] A listában szereplő számok a TIME_STRUCT szerkezet mezőiben tárolt számok.

A karakterlánc az ODBC dátum escape záradékot használja. További információ: Dátum, idő és időbélyeg literálok.

Az illesztőknek mindig ellenőrizniük kell ezt az értéket, hogy megállapítsák, különleges érték-e, például SQL_NULL_DATA.

Az illesztőprogramok által a végrehajtási időben megadott paraméterértékkel kapcsolatos teendők az illesztőprogramtól függenek. Szükség esetén az illesztő átalakítja a kötött változó C adattípusából és bájthosszából származó értéket az SQL-adattípusra, pontosságra és a paraméter méretezésére. A legtöbb esetben az illesztőprogram ezután elküldi az értéket az adatforrásnak. Bizonyos esetekben szövegként formázhatja az értéket, és beszúrja az SQL-utasításba, mielőtt elküldené az utasítást az adatforrásnak.