Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Aplikace předává bajtovou délku vyrovnávací paměti dat ovladači v argumentu s názvem BufferLength nebo podobný název. Například v následujícím volání SQLBindCol aplikace určuje délku vyrovnávací paměti ValuePtr (sizeof(ValuePtr)):
SQLCHAR ValuePtr[50];
SQLINTEGER ValueLenOrInd;
SQLBindCol(hstmt, 1, SQL_C_CHAR, ValuePtr, sizeof(ValuePtr), &ValueLenOrInd);
Ovladač vždy vrátí počet bajtů, nikoli počet znaků, v argumentu délky vyrovnávací paměti libovolné funkce, která má argument výstupního řetězce.
Délky vyrovnávací paměti dat jsou vyžadovány pouze pro výstupní vyrovnávací paměti; ovladač je používá k tomu, aby se zabránilo zápisu po konci vyrovnávací paměti. Ovladač však zkontroluje délku vyrovnávací paměti dat pouze v případě, že vyrovnávací paměť obsahuje data o proměnlivé délce, například znak nebo binární data. Pokud vyrovnávací paměť obsahuje data s pevnou délkou, například celočíselnou nebo datovou strukturu, ovladač ignoruje délku vyrovnávací paměti dat a předpokládá, že je vyrovnávací paměť dostatečně velká pro uložení dat; to znamená, že nikdy nezkrátí data s pevnou délkou. Proto je důležité, aby aplikace přidělila dostatečně velkou vyrovnávací paměť pro data s pevnou délkou.
Pokud dojde ke zkrácení výstupních řetězců bez dat (například název kurzoru vrácený pro SQLGetCursorName), vrácená hodnota v argumentu délky vyrovnávací paměti je maximální možná délka znaku.
Délky vyrovnávací paměti dat nejsou vyžadovány pro vstupní vyrovnávací paměti, protože ovladač do těchto vyrovnávacích pamětí nezapisuje.
Tato část obsahuje následující témata.