Hello,
Environment info:
Powerbuilder 2019 R2 Build 2353
Database: Informix 12.10.FC13 running on Linux server
Informix client: 4.10.TC14 (32 bit) and 4.10.FC12W1 (64 bit)
PB App and Informix Client running on Windows 2008 Server R2 (Service Pack 1)
EDIT:
2 part question:
1. Does anyone have any advice about switching from the native PB Informix driver I10 INFORMIX-10.0 to using ODBC to connect? Any pitfalls, things to look out for, settings that are important or different between the two? We've been using the native PB Informix driver for 20 years and are contemplating switching because we cannot get PB to work properly with the latest releases of the Informix Client software. Not a lot of ODBC experience in our shop and we're hoping the switch will be relatively painless if we have to do it.
It turns out that ODBC driver sees Informix booleans as either a '1' or a '0', not as a 't' or 'f' as does PB's native driver, so it looks like ODBC is not an option for us as it would require code changes.
If anyone else is still using Informix and Powerbuilder together and using the native PB driver, have you experienced any problems upgrading to never versions of the Informix client, specifically issues with boolean data types in Informix? If so, how did you resolve those issues?
I posted this issue late last year and worked with PB support on it but was not able to find a resolution on our end. The problem is that Powerbuilder sees the Informix boolean as a char(1), a 't' or an 'f'. PB and the older Informix client software did this translation seamlessly whereas with newer versions of the client we get strange/garbled data back for booleans and any columns that come after them in the result set. Connecting PB apps through ODBC doesn't produce the garbled data in the result set and behaves the same way regardless of Informix client (it returns '1' or '0' instead of 't' or 'f'). Our .Net apps work fine through an OleDB connection, so it doesn't seem to be a general problem with the Informix client software. We've tried setting things like db_locale, client_locale, different versions of the client software, all to no avail when connecting using the native PB Informix driver.
Any suggestions or info anyone can provide will be greatly appreciated.
Thanks,
Jeff
UPDATE 10/8/2020:
We did some additional research and testing and found that an older version of the Informix client, 4.10.TC2, does work properly with booleans and allows us to implement TLS 1.2. That is our current workaround until PB Support can come up with a resolution that allows use of the latest Informix client.
Thanks for the reply, good info especially the UTF8 info, I'll have to check if anything like that has changed on our side. We also recently moved from Solaris to Linux on the server that hosts Informix.
Are you using the IBM Informix Client SDK or SetNet on your machines where your apps are deployed? If so, do you mind sharing what version you are using? Our problems started when we migrated to version 4.10.TC13 and above.
I have confirmed that if we use a CAST() function to explicitly cast booleans to char(1) in the select statement, it seems to work fine, no data loss and/or garbled data after those columns. That is our final workaround if we can't resolve it without code changes.
Thanks,
Jeff
Our Informix hosts are still Solaris.
Thanks again for the helpful response and information.