cancel
Showing results for 
Search instead for 
Did you mean: 

Euro symbols issue changing ASAProv.90 to SAOLEDB.16

stefano_bolli
Explorer
0 Kudos

Hi all,

          I am facing a strange beahviour during migration test in order to upgrade from IQ 12.7 to IQ 16.0 SP08.

Looking the data into the DB they are equal in both instances, but when an extrnal software try to extract them to an XML files I obtain two different results. The external software uses an ADODB connection.

The problem seems to be related to the EURO symbol (€).

While in OLD setup the XML output file shows always the '€' symbol, in the NEW setup I have sometimes the '€' symbol and some other times an ASCII character showed as SUB in notepad++ instead the '€' symbol.

The strange thing is that apparently I have different behaviour for the same original data.

Herefater I report our configurations:

** OLD ** Sybase IQ 12.7 ESD 4

Collation ISO_BINENG

Provider = ASAProv.90

** NEW ** SAP IQ 16.0 SP08 PL30

DefaultCollation ISO_BINENG

DefaultNcharCollation UCA

Provider = SAOLEDB.16



Do you have any suggestion about how to fix this very strange issue?



Best regards,

Stefano

Accepted Solutions (0)

Answers (2)

Answers (2)

stefano_bolli
Explorer
0 Kudos

Hi Mark,

       I understood the ISO-1 --> ISO-15 note, but the idea during the migration is to maintain the same collation that I have in the original IQ 12.7 system. So that I don't change it and I use ISO_BINENG also for IQ16.

I can try to use  "ASAProv.90" driver to connect to SAP IQ 16, but from last test it is working.

But the strange thing if that not all the '€' symbol disappeared showing the SUB placeholder, only a small subset. How can it be?

Stefano

markmumy
Advisor
Advisor
0 Kudos

If notepad++ is showing some SUB and some euro symbols, then it is likely the data at rest in IQ that has changed.  A binary editor will show you the actual binary/hex value.  A euro symbol should have 0xA4.  If the value at each SUB location is not 0xA4, then something happened when the data was loaded.

Can you create a small file with 2 rows of data?  One that has the proper symbol and one that does not?  If so, attach it to this note and we can look at it.

Lastly, are the IQ 12.7 and IQ 16 clients and providers on the same Windows machine?  Or are these two different client systems?

Mark

stefano_bolli
Explorer
0 Kudos

Hi Mark,

            in attachment I put the following files to better describe my current situation:

(1) "IQ_12_7_CLIENT_output.png" and "IQ_16_CLIENT_output.png" which are respectively the SAP IQ client output from the original IQ 12.7 DB and from the new IQ 16.0 SP08 PL30 DB.

As you can see they are showed in the same way without the '€' symbol.

(2) "IQ12_extract_SMALL.xml" and "IQ16_extract_SMALL.xml" which are respectively the extracted output usign IQ12 and ASAProv.90 driver and the output using IQ16 and SAOLEBD.16 driver.

Lastly, are the IQ 12.7 and IQ 16 clients and providers on the same Windows machine?  Or are these two different client systems?

Yes, they are on the same machine Windows (same client host).

Thank you very much for your availability, regards,

Stefano

stefano_bolli
Explorer
0 Kudos

In attachment the last two files.

Stefano

markmumy
Advisor
Advisor
0 Kudos

Stefano,

Technically speaking, the ISO_BINENG is based on ISO-1 (ISO-8859-1).  ISO-1 does not have the euro symbol in it.  From a database perspective, you would need to use ISO-15 (ISO-8859-15) to get this symbol.

ISO/IEC 8859-15 - Wikipedia, the free encyclopedia

Sometimes, however, you can trick this into working by having the client system do the conversion from the ISO-1 to ISO-15 symbols.  So long as what is stored in the database is a hex A4 (0xA4), then an ISO-15 client should be able to see it as a euro symbol.

Likely what was happening is that the new provider and that computer are doing a straight representation of the data from the database of ISO-1 back to a client of ISO-1 (or something similar).

Just out of curiosity, can you use the old driver against the new server?  If so, do you get expected behavior?

The SUB placeholder in notepad++ is just that.  It is a placeholder or a "substitute" character.  Basically, notepad++ can't read and understand the binary value at that location and will simply put SUB in it's place.  What you should do is run the file through a binary editor to see what the binary value is of the SUB placeholder.  Something like 'od' on Unix/Linux with the -x and -c options would be a good start.

Mark