Currently, LibreOffice only uses the "ANSI" variants of the ODBC calls, never the Unicode variants (with a W suffix). However, much (but not all) of the code is actually prepared to use the Unicode variants. Using the Unicode variants can be useful because it allows us not to mess with encodings, we get more-or-less directly the UTF-16 that our OUStrings need. Also, it allows to work around bugs in ODBC drivers, see e.g. the discussion in comment 13 of bug 68426. But it may trigger *other* bugs in ODBC drivers... Some decision needs to be done when to use which variant. Possibly it should just be an "Advanced setting" (see menu edit / database / advanced settings), or even better something set in the same dialog tab as the connection charset. See in directory connectivity/source/drivers/odbcbase/: - OTools.cxx: argument _bUseWChar to various functions - OPreparedStatement.cxx: constant useWChar - OResultsetMetaData.cxx: this one is not ready; need to use N3SQLColAttribute OR N3SQLColAttributeW depending on conditions / configuration / ... directory connectivity/source/drivers/odbc/: - OFunctions.cxx - ORealDriver.cxx these to add the W variants to these two functions. There is a good explanation on ODBC and Unicode in general at http://www.easysoft.com/products/data_access/odbc_oracle_driver/unicode.html#odbc the authoritative reference is at http://msdn.microsoft.com/en-us/library/windows/desktop/ms716246(v=vs.85).aspx http://msdn.microsoft.com/en-us/library/windows/desktop/ms709439(v=vs.85).aspx
Adding self to CC if not already on
Migrating Whiteboard tags to Keywords: (easyHack, difficultyInteresting, skillCpp, skillSql) [NinjaEdit]
JanI is default CC for Easy Hacks (Add Jan; remove LibreOffice Dev List from CC) [NinjaEdit]
When I saw and decided to fix bug 131238, I didn't know about this easyhack. I accidentally fixed it :-)
Mike Kaganski committed a patch related to this issue. It has been pushed to "master": https://git.libreoffice.org/core/commit/5ed1415d1cf03a3d671ebd11582dfaa90f1168bd tdf#68676, tdf#131238: implement and use Unicode ODBC functions on Windows It will be available in 25.2.0. The patch should be included in the daily builds available at https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More information about daily builds can be found at: https://wiki.documentfoundation.org/Testing_Daily_Builds Affected users are encouraged to test the fix and report feedback.
Mike Kaganski committed a patch related to this issue. It has been pushed to "master": https://git.libreoffice.org/core/commit/fac23917fcc6b8846c5cf1e6f88c03e74e332f9e tdf#68676 Fix textual data length sent to SQLBindCol It will be available in 25.2.0. The patch should be included in the daily builds available at https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More information about daily builds can be found at: https://wiki.documentfoundation.org/Testing_Daily_Builds Affected users are encouraged to test the fix and report feedback.