SQLGetTranslator Function

Version Introduced: ODBC 2.0

SQLGetTranslator displays a dialog box from which a user can select a translator.


BOOL SQLGetTranslator(  
     HWND      hwndParent,  
     LPSTR     lpszName,  
     WORD      cbNameMax,  
     WORD *    pcbNameOut,  
     LPSTR     lpszPath,  
     WORD      cbPathMax,  
     WORD *    pcbPathOut,  
     DWORD *   pvOption);  


[Input] Parent window handle.

[Input/Output] Name of the translator from the system information.

[Input] Maximum length of the lpszName buffer.

[Input/Output] Total number of bytes (excluding the null-termination byte) passed or returned in lpszName. If the number of bytes available to return is greater than or equal to cbNameMax, the translator name in lpszName is truncated to cbNameMax minus the null-termination character. The pcbNameOut argument can be a null pointer.

[Output] Full path of the translation DLL.

[Input] Maximum length of the lpszPath buffer.

[Output] Total number of bytes (excluding the null-termination byte) returned in lpszPath. If the number of bytes available to return is greater than or equal to cbPathMax, the translation DLL path in lpszPath is truncated to cbPathMax minus the null-termination character. The pcbPathOut argument can be a null pointer.

[Output] 32-bit translation option.


The function returns TRUE if it is successful, FALSE if it fails or if the user cancels the dialog box.


When SQLGetTranslator returns FALSE, an associated *pfErrorCode value can be obtained by calling SQLInstallerError. The following table lists the *pfErrorCode values that can be returned by SQLInstallerError and explains each one in the context of this function.

*pfErrorCode Error Description
ODBC_ERROR_GENERAL_ERR General installer error An error occurred for which there was no specific installer error.
ODBC_ERROR_INVALID_BUFF_LEN Invalid buffer length The cbNameMax or cbPathMax argument was less than or equal to 0.
ODBC_ERROR_INVALID_HWND Invalid window handle The hwndParent argument was invalid or NULL.
ODBC_ERROR_INVALID_NAME Invalid driver or translator name The lpszName argument was invalid. It could not be found in the registry.
ODBC_ERROR_LOAD_LIBRARY_FAILED Could not load the driver or translator setup library The translator library could not be loaded.
ODBC_ERROR_INVALID_OPTION Invalid transaction option The pvOption argument contained an invalid value.
ODBC_ERROR_OUT_OF_MEM Out of memory The installer could not perform the function because of a lack of memory.


If hwndParent is null or if lpszName, lpszPath, or pvOption is a null pointer, SQLGetTranslator returns FALSE. Otherwise, it displays the list of installed translators in the following dialog box.

Select Translator dialog box

If lpszName contains a valid translator name, it is selected. Otherwise, <No Translator> is selected.

If the user chooses <No Translator>, the contents of lpszName, lpszPath, and pvOption are not touched. SQLGetTranslator sets pcbNameOut and pcbPathOut to 0 and returns TRUE.

If the user chooses a translator, SQLGetTranslator calls ConfigTranslator in the translator's setup DLL. If ConfigTranslator returns FALSE, SQLGetTranslator returns to its dialog box. If ConfigTranslator returns TRUE, SQLGetTranslator returns TRUE, along with the selected translator name, path, and translation option.

For information about See
Configuring a translator ConfigTranslator
Getting a translation attribute SQLGetConnectAttr
Setting a translation attribute SQLSetConnectAttr