RE: Bug report: odbc driver does not convert wide chars to chars

From: Farid z <farid(at)zidsoft(dot)com>
To: Jon Raiford <raiford(at)labware(dot)com>, "pgsql-odbc(at)postgresql(dot)org" <pgsql-odbc(at)postgresql(dot)org>
Subject: RE: Bug report: odbc driver does not convert wide chars to chars
Date: 2021-11-23 00:06:54
Message-ID: FDA13E12-E395-46CA-9C0B-1CA017BA782D@hxcore.ol
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-odbc

<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40"><head><meta http-equiv=Content-Type content="text/html; charset=utf-8"><meta name=Generator content="Microsoft Word 15 (filtered medium)"><style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
font-size:11.0pt;
font-family:"Calibri",sans-serif;}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
.MsoChpDefault
{mso-style-type:export-only;}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
--></style></head><body lang=EN-US link=blue vlink="#954F72" style='word-wrap:break-word'><div class=WordSection1><p class=MsoNormal>Client ODBC apps are supposed to use the narrow or wide ODBC API depending on whether the client app is a narrow or wide app on Windows (A or W versions of the Windows/ODBC API).</p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>Since my app is a narrow Windows app (uses narrow windows and ODBC API), it uses the ANSI/narrow versions of MySQL and MariaDB drivers and all ODBC drivers that have separate ANSI/narrow and Wide versions of a driver to match the API narrow/wide ODBC API calls of the drivers.</p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>The ANSI/wide determines what version of the ODBC API is called (narrow or wide,</p><p class=MsoNormal>ie, SQLBindColA or SQLBindColW, etc) and has nothing to do with what actual data types the app uses. Client ODBC apps can use any ODBC data type including char and wchar_t data types and ODBC Drivers are required to convert from bound parameter data type to target dbms column data type as necessary.</p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>When an app (whether the app uses narrow or wide version of the ODBC API) binds a parameter/column data buffer as wchar_t and the database column data type is UTF-8, the driver has to converts the wchar_t buffer data to UTF-8 on inserting the data into the dbms. This conversion of data types as necessary has nothing to do with whether the ODBC driver is A or W).</p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>So it is very confusing to make a narrow Windows client API app connect with W ODBC driver where there is also a narrow version of the driver. This would at a minimum require the ODBC driver manager to convert perfectly valid narrow client data to wide data to match the ODBC Driver Wide API interface.</p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>I tested the PostgreSQL Unicode version of the ODBC driver and it worked in this case. However, the driver performance is significantly reduced by over 50% (ODBC Driver Manager has to convert all the client narrow data buffers to wide buffers as it relays the client data to the ODBC driver).</p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>So, this is a bug in the PostgreSQL ANSI ODBC driver. But I guess, it has a workaround with a severely degraded ODBC driver performance.</p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>Not sure why the PostgreSQL narrow driver does not do what it is supposed to do rather than requiring apps to use the wide version of the driver to work with wchar_t data. The ODBC spec says client apps can use any valid ODBC data types and the ODBC driver is supposed to convert the data types as necessary.</p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>With Windows now supporting UTF-8 narrow apps natively via UTF-8 code page, it is not very helpful, nor necessary, to incur severely degraded PostgreSQL ODBC driver performance by forcing native Windows UTF-8/narrow client apps to have to use the wide version of the PostgreSQL ODBC driver to work with other DBMS  wchar_t data types (like MS SQL Server, Oracle, etc, wide char data types).</p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>I would recommend fixing the PostgreSQL ODBC ANSI(narrow) driver to work with native narrow windows client apps without always incurring unnecessary conversions by the ODBC driver manager of the narrow client ODBC apps all data to wide chars.</p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>Farid</p><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal><a href="https://zidsoft.com/index.html"><span style='font-size:8.0pt'>CompareData</span></a><span style='font-size:8.0pt'> &nbsp;<span style='color:#A5A5A5'>Compare and synchronize sql dbms data visually</span><o:p></o:p></span></p><p class=MsoNormal><a href="https://zidsoft.com/strobe.html"><span style='font-size:8.0pt'>Strobe</span></a><span style='font-size:8.0pt'> &nbsp;<span style='color:#A5A5A5'>Strobe light for your phone<o:p></o:p></span></span></p><p class=MsoNormal><o:p>&nbsp;</o:p></p><div style='mso-element:para-border-div;border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal style='border:none;padding:0in'><b>From: </b><a href="mailto:raiford(at)labware(dot)com">Jon Raiford</a><br><b>Sent: </b>Monday, November 22, 2021 3:31 PM<br><b>To: </b><a href="mailto:pgsql-odbc(at)postgresql(dot)org">pgsql-odbc(at)postgresql(dot)org</a><br><b>Cc: </b><a href="mailto:farid(at)zidsoft(dot)com">Farid z</a><br><b>Subject: </b>Re: Bug report: odbc driver does not convert wide chars to chars</p></div><p class=MsoNormal><o:p>&nbsp;</o:p></p><p class=MsoNormal>This does not sound like a bug. I’m sure that you will find that you are using a Unicode version of MySQL and MariaDB ODBC drivers.&nbsp; Is there a reason you are not using the Unicode Postgres driver?&nbsp; If you insist on using the ANSI driver, I would suggest not trying to use the Unicode “W” (wide char) functions or data types.&nbsp; But really, I think your answer is to just use the Unicode driver.&nbsp; I honestly don’t know why the ANSI driver is still being distributed, but I suppose there are still a few people out there who need it.<o:p></o:p></p><p class=MsoNormal>&nbsp;<o:p></o:p></p><p class=MsoNormal>Jon<o:p></o:p></p><p class=MsoNormal>&nbsp;<o:p></o:p></p><div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal><b><span style='font-size:12.0pt;color:black'>From: </span></b><span style='font-size:12.0pt;color:black'>Farid z &lt;farid(at)zidsoft(dot)com&gt;<br><b>Date: </b>Monday, November 22, 2021 at 2:45 PM<br><b>To: </b>Jon Raiford &lt;raiford(at)labware(dot)com&gt;<br><b>Subject: </b>RE: Bug report: odbc driver does not convert wide chars to chars</span><o:p></o:p></p></div><div><p class=MsoNormal>&nbsp;<o:p></o:p></p></div><p class=MsoNormal>Right, I think that’s what’s happening.<o:p></o:p></p><p class=MsoNormal>&nbsp;<o:p></o:p></p><p class=MsoNormal>App is UTF-8 app code-page on Windows. <o:p></o:p></p><p class=MsoNormal>App is telling the driver the data buffer is SQL_WCHAR, driver needs to convert from wide chars to the column database data type rather than treating the data buffer as UTF-8 chars.<o:p></o:p></p><p class=MsoNormal>&nbsp;<o:p></o:p></p><p class=MsoNormal>Driver is supposed to convert from source data buffers data type to dbms column data type as necessary. Converting from wide-char to UTF-8 is not ambiguous.<o:p></o:p></p><p class=MsoNormal>&nbsp;<o:p></o:p></p><p class=MsoNormal>This works as expected with other ODBC drivers like MySQL and MariaDB.<o:p></o:p></p><p class=MsoNormal>&nbsp;<o:p></o:p></p><p class=MsoNormal>Farid<o:p></o:p></p><p class=MsoNormal>&nbsp;<o:p></o:p></p><p class=MsoNormal><a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__zidsoft.com_index.html&amp;d=DwMFaQ&amp;c=sPZ6DeHLiehUHQWKIrsNwWp3t7snrE-az24ztT0w7Jc&amp;r=gyT4z3lWeJogBi5EE3kRdCBevAtSI6-HaWhKJMvs6Ts&amp;m=hQ8oBR8cCqYCsJl-TVQFGLaXP9Nu7Qzxl__3l8tao3w&amp;s=flxcUNyLSdEBYaJA25nYaCamqjHITHmczwdTQpVig14&amp;e="><span style='font-size:8.0pt'>CompareData</span></a><span style='font-size:8.0pt'> &nbsp;<span style='color:#A5A5A5'>Compare and synchronize sql dbms data visually</span></span><o:p></o:p></p><p class=MsoNormal><a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__zidsoft.com_strobe.html&amp;d=DwMFaQ&amp;c=sPZ6DeHLiehUHQWKIrsNwWp3t7snrE-az24ztT0w7Jc&amp;r=gyT4z3lWeJogBi5EE3kRdCBevAtSI6-HaWhKJMvs6Ts&amp;m=hQ8oBR8cCqYCsJl-TVQFGLaXP9Nu7Qzxl__3l8tao3w&amp;s=aUEcUEkLaMoSDP4FEq0s4LdTMm8-kL2UN97mGgHakgM&amp;e="><span style='font-size:8.0pt'>Strobe</span></a><span style='font-size:8.0pt'> &nbsp;<span style='color:#A5A5A5'>Strobe light for your phone</span></span><o:p></o:p></p><p class=MsoNormal>&nbsp;<o:p></o:p></p><div style='border:none;border-top:solid #E1E1E1 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal><b>From: </b><a href="mailto:raiford(at)labware(dot)com">Jon Raiford</a><br><b>Sent: </b>Monday, November 22, 2021 9:01 AM<br><b>To: </b><a href="mailto:farid(at)zidsoft(dot)com">Farid z</a><br><b>Subject: </b>Re: Bug report: odbc driver does not convert wide chars to chars<o:p></o:p></p></div><p class=MsoNormal>&nbsp;<o:p></o:p></p><p class=MsoNormal>It looks like you are using the ANSI driver (PSQLODBC30A) rather than the Unicode driver (PSQLODBC35W). &nbsp;The ANSI driver likely sees the first null and assumes the end of the string has been reached.&nbsp; I would suggest trying again with the Unicode driver.<o:p></o:p></p><p class=MsoNormal>&nbsp;<o:p></o:p></p><p class=MsoNormal>Jon<o:p></o:p></p><p class=MsoNormal>&nbsp;<o:p></o:p></p><div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0in 0in 0in'><p class=MsoNormal><b><span style='font-size:12.0pt;color:black'>From: </span></b><span style='font-size:12.0pt;color:black'>Farid z &lt;farid(at)zidsoft(dot)com&gt;<br><b>Date: </b>Sunday, November 21, 2021 at 12:46 PM<br><b>To: </b>&quot;pgsql-odbc(at)postgresql(dot)org&quot; &lt;pgsql-odbc(at)postgresql(dot)org&gt;<br><b>Subject: </b>Bug report: odbc driver does not convert wide chars to chars</span><o:p></o:p></p></div><div><p class=MsoNormal>&nbsp;<o:p></o:p></p></div><p class=MsoNormal>PostgreSQL 14.0.0, PSQLODBC30A.DLL 13.02.0000<o:p></o:p></p><p class=MsoNormal>Windows x64 (Windows 10 or Windows 11).<o:p></o:p></p><p class=MsoNormal>&nbsp;<o:p></o:p></p><p class=MsoNormal>Migrating data from SQL Server (or any other dbms that supports SQ_WCHAR/SQL_WVARCHAR) data types) to PostgreSQL.<o:p></o:p></p><p class=MsoNormal>&nbsp;<o:p></o:p></p><p class=MsoNormal>Steps to reproduce:<o:p></o:p></p><p class=MsoNormal>&nbsp;<o:p></o:p></p><p class=MsoNormal>1 create SQL Server table source data table:<o:p></o:p></p><p class=MsoNormal>&nbsp;<o:p></o:p></p><p class=MsoNormal>create table test_char(<o:p></o:p></p><p class=MsoNormal>col1 nchar(8),<o:p></o:p></p><p class=MsoNormal>col2 nvarchar(30));<o:p></o:p></p><p class=MsoNormal>&nbsp;<o:p></o:p></p><p class=MsoNormal>2 create PostgreSQL table target table:<o:p></o:p></p><p class=MsoNormal>&nbsp;<o:p></o:p></p><p class=MsoNormal>create table test_char(<o:p></o:p></p><p class=MsoNormal>col1 char(8),<o:p></o:p></p><p class=MsoNormal>col2 varchar(30));<o:p></o:p></p><p class=MsoNormal>&nbsp;<o:p></o:p></p><p class=MsoNormal>3 add test data in MS SQL Server table:<o:p></o:p></p><p class=MsoNormal>&nbsp;<o:p></o:p></p><p class=MsoNormal>insert into test_char<o:p></o:p></p><p class=MsoNormal>values<o:p></o:p></p><p class=MsoNormal>(N'a', N'a');<o:p></o:p></p><p class=MsoNormal>&nbsp;<o:p></o:p></p><p class=MsoNormal>insert into test_char<o:p></o:p></p><p class=MsoNormal>values<o:p></o:p></p><p class=MsoNormal>(N'bb', N'bb');<o:p></o:p></p><p class=MsoNormal>&nbsp;<o:p></o:p></p><p class=MsoNormal>insert into test_char<o:p></o:p></p><p class=MsoNormal>values<o:p></o:p></p><p class=MsoNormal>(N'ccc', N'ccc');<o:p></o:p></p><p class=MsoNormal>&nbsp;<o:p></o:p></p><p class=MsoNormal>insert into test_char<o:p></o:p></p><p class=MsoNormal>values<o:p></o:p></p><p class=MsoNormal>(N'ffffffff', N'ffffffff');<o:p></o:p></p><p class=MsoNormal>&nbsp;<o:p></o:p></p><p class=MsoNormal>4 application binds the two columns as SQL_C_CHAR and SQL_C_WCHAR (excerpt from attached log).<o:p></o:p></p><p class=MsoNormal>&nbsp;<o:p></o:p></p><p class=MsoNormal>cmpdata&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 6be8-29f4 EXIT&nbsp; SQLBindParameter&nbsp; with return code 0 (SQL_SUCCESS)<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; HSTMT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x000000000591E5D0<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; UWORD&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1 <o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SWORD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1 &lt;SQL_PARAM_INPUT&gt;<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SWORD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; -8 &lt;SQL_C_WCHAR&gt;<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SWORD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1 &lt;SQL_CHAR&gt;<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SQLULEN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 8<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SWORD&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 <o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PTR&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x0000000000411178<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SQLLEN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 18<o:p></o:p></p><p class=MsoNormal>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SQLLEN *&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0x0000000000411170 (-1)<o:p></o:p></p><p class=MsoNormal>&nbsp;<o:p></o:p></p><p class=MsoNormal>5 drivers successfully executes the inserts statements into PostgreSQL but does not convert from SQL_WCHAR and SQL_WVARCHAR, looks like it driver just grabs the first bytes of each inserted value.<o:p></o:p></p><p class=MsoNormal>&nbsp;<o:p></o:p></p><p class=MsoNormal>6 Actual inserted data is just the first letter of each bound value.<o:p></o:p></p><p class=MsoNormal>&nbsp;<o:p></o:p></p><p class=MsoNormal>‘b’ instead of ‘bb’, ‘c’ instead of ‘ccc’, ‘f’ instead of ‘ffffffff’.<o:p></o:p></p><p class=MsoNormal>&nbsp;<o:p></o:p></p><p class=MsoNormal>&nbsp;<o:p></o:p></p><p class=MsoNormal>Please see attached log with insert statements and screen shots.<o:p></o:p></p><p class=MsoNormal>&nbsp;<o:p></o:p></p><p class=MsoNormal>Farid<o:p></o:p></p><p class=MsoNormal>&nbsp;<o:p></o:p></p><p class=MsoNormal>&nbsp;<o:p></o:p></p><p class=MsoNormal><a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__zidsoft.com_index.html&amp;d=DwMGaQ&amp;c=sPZ6DeHLiehUHQWKIrsNwWp3t7snrE-az24ztT0w7Jc&amp;r=gyT4z3lWeJogBi5EE3kRdCBevAtSI6-HaWhKJMvs6Ts&amp;m=CY10HY42cv_uh6yUfGQf0xCClQO_s8dordpEwSYAgNA&amp;s=OaQeFhTGVfbBqWgl0AXbBUkIduRJjDDotyJKaEUwLFw&amp;e="><span style='font-size:8.0pt'>CompareData</span></a><span style='font-size:8.0pt'> &nbsp;<span style='color:#A5A5A5'>Compare and synchronize sql dbms data visually</span></span><o:p></o:p></p><p class=MsoNormal><a href="https://urldefense.proofpoint.com/v2/url?u=https-3A__zidsoft.com_strobe.html&amp;d=DwMGaQ&amp;c=sPZ6DeHLiehUHQWKIrsNwWp3t7snrE-az24ztT0w7Jc&amp;r=gyT4z3lWeJogBi5EE3kRdCBevAtSI6-HaWhKJMvs6Ts&amp;m=CY10HY42cv_uh6yUfGQf0xCClQO_s8dordpEwSYAgNA&amp;s=nfD8CZAUEL4AIRL43JUPrh6Swle8G6Ml3kB7-lC7GrE&amp;e="><span style='font-size:8.0pt'>Strobe</span></a><span style='font-size:8.0pt'> &nbsp;<span style='color:#A5A5A5'>Strobe light for your phone</span></span><o:p></o:p></p><p class=MsoNormal>&nbsp;<o:p></o:p></p><p class=MsoNormal>&nbsp;<o:p></o:p></p><p class=MsoNormal><o:p>&nbsp;</o:p></p></div></body></html>

Attachment Content-Type Size
unknown_filename text/html 16.7 KB

In response to

Responses

Browse pgsql-odbc by date

  From Date Subject
Next Message Jon Raiford 2021-11-23 14:00:08 Re: Bug report: odbc driver does not convert wide chars to chars
Previous Message Jon Raiford 2021-11-22 20:31:36 Re: Bug report: odbc driver does not convert wide chars to chars