SQLDataSourceToDriver, funkcja
SQLDataSourceToDriver obsługuje tłumaczenia sterowników ODBC. Ta funkcja nie jest wywoływana przez aplikacje z obsługą ODBC; aplikacje żądają tłumaczenia za pośrednictwem SQLSetConnectAttr. Sterownik skojarzony z ConnectionHandle określony w SQLSetConnectAttr wywołuje określoną bibliotekę DLL do wykonywania tłumaczeń wszystkich danych przepływających ze źródła danych do sterownika. Domyślną bibliotekę DLL tłumaczenia można określić w pliku inicjowania ODBC.
Składnia
BOOL SQLDataSourceToDriver(
UDWORD fOption,
SWORD fSqlType,
PTR rgbValueIn,
SDWORD cbValueIn,
PTR rgbValueOut,
SDWORD cbValueOutMax,
SDWORD * pcbValueOut,
UCHAR * szErrorMsg,
SWORD cbErrorMsgMax,
SWORD * pcbErrorMsg);
Argumenty
fOption
[Dane wejściowe] Wartość opcji.
fSqlType
[Dane wejściowe] Typ danych SQL. Ten argument informuje sterownik, jak przekonwertować rgbValueIn na formularz akceptowalny przez aplikację. Aby uzyskać listę prawidłowych typów danych SQL, zobacz sekcję TYPY danych SQL w dodatku D: Typy danych.
rgbValueIn
[Dane wejściowe] Wartość do tłumaczenia.
cbValueIn
[Dane wejściowe] Długość rgbValueIn.
[Dane wyjściowe] Wynik tłumaczenia.
Nuta
Biblioteka DLL tłumaczenia nie kończy tej wartości bez wartości null.
cbValueOutMax
[Dane wejściowe] Długość rgbValueOut.
[Dane wyjściowe] Całkowita liczba bajtów (z wyłączeniem bajtu zakończenia wartości null) dostępna do zwrócenia w rgbValueOut.
W przypadku danych znaków lub danych binarnych, jeśli jest to większe lub równe cbValueOutMax, dane w rgbValueOut są obcinane do cbValueOutMax bajtów.
Dla wszystkich innych typów danych wartość cbValueOutMax jest ignorowana, a biblioteka DLL tłumaczenia zakłada, że rozmiar rgbValueOut jest rozmiarem domyślnego typu danych C typu danych SQL określonego przy użyciu fSqlType.
Argument pcbValueOut może być wskaźnikiem o wartości null.
szErrorMsg
[Dane wyjściowe] Wskaźnik do magazynu dla komunikatu o błędzie. Jest to pusty ciąg, chyba że tłumaczenie nie powiodło się.
cbErrorMsgMax
[Dane wejściowe] Długość szErrorMsg.
errorMsg
[Dane wyjściowe] Wskaźnik do łącznej liczby bajtów (z wyłączeniem bajtu zakończenia wartości null) dostępnych do zwrócenia w szErrorMsg. Jeśli jest to większe lub równe cbErrorMsg, dane w szErrorMsg są obcinane do cbErrorMsgMax minus znak zakończenia wartości null. Argument errorMsg może być wskaźnikiem o wartości null.
Zwraca
Wartość TRUE, jeśli tłumaczenie zakończyło się pomyślnie, wartość FALSE, jeśli tłumaczenie nie powiodło się.
Komentarze
Sterownik wywołuje SQLDataSourceToDriver, aby przetłumaczyć wszystkie dane (dane zestawu wyników, nazwy tabel, liczby wierszy, komunikaty o błędach itd.) przekazywane ze źródła danych do sterownika. Biblioteka DLL tłumaczenia może nie tłumaczyć niektórych danych w zależności od typu danych i przeznaczenia biblioteki DLL tłumaczenia; na przykład biblioteka DLL, która tłumaczy dane znaków z jednej strony kodu na inną, ignoruje wszystkie dane liczbowe i binarne.
Wartość fOption jest ustawiona na wartość vParam określone przez wywołanie SQLSetConnectAttr za pomocą atrybutu SQL_ATTR_TRANSLATE_OPTION. Jest to wartość 32-bitowa, która ma określone znaczenie dla danej biblioteki DLL tłumaczenia. Może na przykład określić pewne tłumaczenie zestawu znaków.
Jeśli ten sam bufor jest określony dla rgbValueIn i rgbValueOut, tłumaczenie danych w buforze zostanie wykonane.
Mimo że
Jeśli SQLDataSourceToDriver zwraca wartość FALSE, podczas tłumaczenia mogły wystąpić obcięcie danych. Jeśli
Aby uzyskać więcej informacji na temat tłumaczenia danych, zobacz Translation DLL.
Powiązane funkcje
Aby uzyskać informacje o | Widzieć |
---|---|
Tłumaczenie danych wysyłanych do źródła danych | SQLDriverToDataSource |
Zwracanie ustawienia atrybutu połączenia | SQLGetConnectAttr |
Ustawianie atrybutu połączenia | SQLSetConnectAttr |