Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Az alkalmazás az adatpuffer bájthosszát átadja az illesztőnek egy BufferLength vagy hasonló név nevű argumentumban. Az SQLBindCol következő hívásában például az alkalmazás a ValuePtr puffer hosszát adja meg (sizeof(ValuePtr)):
SQLCHAR ValuePtr[50];
SQLINTEGER ValueLenOrInd;
SQLBindCol(hstmt, 1, SQL_C_CHAR, ValuePtr, sizeof(ValuePtr), &ValueLenOrInd);
Az illesztők mindig a bájtok számát, nem pedig a karakterek számát fogják visszaadni a kimeneti sztring argumentummal rendelkező függvények pufferhossz argumentumában.
Az adatpufferek hossza csak kimeneti pufferekhez szükséges; az illesztő azokat használja, hogy elkerülje a puffer végének írását. Az illesztőprogram azonban csak akkor ellenőrzi az adatpuffer hosszát, ha a puffer változó hosszúságú adatokat, például karakter- vagy bináris adatokat tartalmaz. Ha a puffer rögzített hosszúságú adatokat, például egész vagy dátumstruktúrát tartalmaz, az illesztőprogram figyelmen kívül hagyja az adatpuffer hosszát, és feltételezi, hogy a puffer elég nagy az adatok tárolásához; vagyis soha nem csonkolja a rögzített hosszúságú adatokat. Ezért fontos, hogy az alkalmazás elegendő nagy puffert foglaljon le a rögzített hosszúságú adatokhoz.
Ha nem adatkimeneti sztringek csonkolása történik (például az SQLGetCursorName-hoz visszaadott kurzornév), a pufferhossz argumentumban a visszaadott hossz a lehető legnagyobb karakterhossz.
Az adatpufferek hossza nem szükséges a bemeneti pufferekhez, mert az illesztőprogram nem ír ezekbe a pufferekbe.
Ez a szakasz a következő témaköröket tartalmazza.