There are several risks related to the direct use of the ODBC API. Mainly - there is too much allowed variety. The driver developers can target different ODBC levels, implement different subsets of the API, interpret the API requirements differently. In addition, there can be mistakes in both our code and driver code.
As a mitigation for these risks (e.g. workaround) we could introduce hidden (by default) configuration parameters:
- use isql binary directly instead of ODBC API;
- user configurable maximum field width (e.g. revert changes for
ZBX-8489and use user-configured size in SQLBindCol() instead of MAX_STRING_LEN).