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.
Datový typ vyrovnávací paměti v jazyce C je určen aplikací. S jednou proměnnou k tomu dojde, když aplikace přidělí proměnnou. U obecné paměti – tedy paměti odkazované ukazatelem typu void – k tomu dochází, když aplikace přetypuje paměť na určitý typ. Ovladač tento typ zjistí dvěma způsoby:
Argument pro typ vyrovnávací paměti dat. Vyrovnávací paměti používané k přenosu hodnot parametrů a dat sady výsledků, například vyrovnávací paměti vázané na TargetValuePtr v SQLBindCol, obvykle mají přidružený argument typu, například argument TargetType v SQLBindCol. V tomto argumentu aplikace předá identifikátor typu C, který odpovídá typu vyrovnávací paměti. Například v následujícím volání SQLBindCol hodnota SQL_C_TYPE_DATE říká ovladači, že vyrovnávací paměť date je SQL_DATE_STRUCT:
SQL_DATE_STRUCT Date; SQLINTEGER DateInd; SQLBindCol(hstmt, 1, SQL_C_TYPE_DATE, &Date, 0, &DateInd);Další informace o identifikátorech typů naleznete v části Datové typy v oddílu ODBC, dále v této části.
Předdefinovaný typ. Vyrovnávací paměti používané k odesílání a načítání možností nebo atributů, jako je vyrovnávací paměť odkazovaná argumentem InfoValuePtr v SQLGetInfo, mají pevný typ, který závisí na zadané možnosti. Ovladač předpokládá, že vyrovnávací paměť dat je tohoto typu; je zodpovědností aplikace přidělit vyrovnávací paměť tohoto typu. Například v následujícím volání SQLGetInfo ovladač předpokládá, že vyrovnávací paměť je 32-bitové celé číslo, protože to vyžaduje možnost SQL_STRING_FUNCTIONS.
SQLUINTEGER StringFuncs; SQLGetInfo(hdbc, SQL_STRING_FUNCTIONS, (SQLPOINTER) &StringFuncs, 0, NULL);
Ovladač používá datový typ C k interpretaci dat ve vyrovnávací paměti.