TD-15670: Language issue with Sybase
TD-15670: Language issue with Sybase
Hi,
We are experiencing a major problem (show stopper??) after having converted our application from TD 3.1PTF4 to TD 6.0SP2 Win32 (build 24565).
It’s a language issue regarding conversion to/from Sybase. Our Swedish special characters (Å,Ä,Ö,å,ä,ö; ASCII decimal 197,196,214,229,228,246) are distorted in the Sybase stored procedure as parameter values and in raiserror messages. Text strings selected directly from database tables are showing OK.
Platform: Windows XP SP3
Example:
Procedure call: execute Omrade_RM_v1 6,'Göteborg ',NULL
Extract from log file saying ’Area does not exist’. Fourth letter should have been ’å’:
2011-05-18 17:54:57:970000: OR_013: ** FEL **: SybServerMsg: Felkod/nivå: 20041/16: OmrÕde finns ej.
Could you please help out?
Regards Lars-Olof
We are experiencing a major problem (show stopper??) after having converted our application from TD 3.1PTF4 to TD 6.0SP2 Win32 (build 24565).
It’s a language issue regarding conversion to/from Sybase. Our Swedish special characters (Å,Ä,Ö,å,ä,ö; ASCII decimal 197,196,214,229,228,246) are distorted in the Sybase stored procedure as parameter values and in raiserror messages. Text strings selected directly from database tables are showing OK.
Platform: Windows XP SP3
Example:
Procedure call: execute Omrade_RM_v1 6,'Göteborg ',NULL
Extract from log file saying ’Area does not exist’. Fourth letter should have been ’å’:
2011-05-18 17:54:57:970000: OR_013: ** FEL **: SybServerMsg: Felkod/nivå: 20041/16: OmrÕde finns ej.
Could you please help out?
Regards Lars-Olof
Re: TD-15670: Language issue with Sybase
Sounds like a Unicode issue of some sort. v6 is in Unicode, <= v4.2 were not.
Just to be sure I understand: Any error or other msgs that come back from Sybase as errors or SP params. don't display the Umlaut/SW chars. correctly? Is the Sybase DB a Unicode DB?
I'd write a small test case for this and look in TD help for SalStrToWideChar() and its opposite. It's possible that those values coming back aren't Unicode and need to be converted to a Unicode string to display correctly in TD. Otherwise, you will need to supply a small test and details about what you see.
Just to be sure I understand: Any error or other msgs that come back from Sybase as errors or SP params. don't display the Umlaut/SW chars. correctly? Is the Sybase DB a Unicode DB?
I'd write a small test case for this and look in TD help for SalStrToWideChar() and its opposite. It's possible that those values coming back aren't Unicode and need to be converted to a Unicode string to display correctly in TD. Otherwise, you will need to supply a small test and details about what you see.
Re: TD-15670: Language issue with Sybase
Hi Jeff,
I'm positive it's a UNICODE issue, and I'm fully aware of that TD 6.0 is in UTF-16, but it was my understanding that you didn't have to do anything special in the application to communicate with the database. That the conversion was implicit. Therefore, in my view, it was a bug which is why I reported it in this forum. Are you saying we have to convert the parameter values to ANSI (SalStrToMultiByte) when passing them to the stored procedures and vice versa (SalStrToWideChar) when receiving error messages? In that case it would have been helpful with equivelant ********X functions that returned the output, but I guess we can write them ourselves.
No, our Sybase DB is not in UNICODE.
Thanks for your help. I hope it works.
I'm positive it's a UNICODE issue, and I'm fully aware of that TD 6.0 is in UTF-16, but it was my understanding that you didn't have to do anything special in the application to communicate with the database. That the conversion was implicit. Therefore, in my view, it was a bug which is why I reported it in this forum. Are you saying we have to convert the parameter values to ANSI (SalStrToMultiByte) when passing them to the stored procedures and vice versa (SalStrToWideChar) when receiving error messages? In that case it would have been helpful with equivelant ********X functions that returned the output, but I guess we can write them ourselves.
No, our Sybase DB is not in UNICODE.
Thanks for your help. I hope it works.
Re: TD-15670: Language issue with Sybase
Sorry, I didn't confirm on this question.Jeff Luther wrote:Just to be sure I understand: Any error or other msgs that come back from Sybase as errors or SP params. don't display the Umlaut/SW chars. correctly?
Yes: Error messages coming back from Sybase don't disply correctly. Other characters have replaced our umlaut characters. ANSI to UNICODE conversion is not working properly.
No: Our special umlaut characters are not converted correctly to Sybase when put in parameter values to stored procedures.
Normally valid parameter values are no longer valid because of the umlaut characters not being properly converted to ANSI.
I have just now tried to use SalStrToMultiByte (with ENC_ANSI) but the conversion just makes it worse - I get question marks for all characters as output. What is more - the SybExecuteProc expects the command sent in to be in WIDECHAR format.
It seems the conversion must be done in the interface (sqlsyb32.dll).
Re: TD-15670: Language issue with Sybase
I'm uploading a small test application including a Sql script file for creating a table and a stored procedure. Sql.ini for both TD and Sybase are also included, but must of course be updated.
Hope this will help you too understand our problem.
Hope this will help you too understand our problem.
You do not have the required permissions to view the files attached to this post.
Re: TD-15670: Language issue with Sybase
I just want to epmhasize how important this issue is for us. Alhough this is a real showstopper for us, we cannot stop upgrading as it's included in an order from our customer so we need it fixed ASAP. I understand you have many issues to deal with, but nevertheless.
An EMP for this is a must for us.
An EMP for this is a must for us.
Re: TD-15670: Language issue with Sybase
Can I please have a status report on this? As I said this is really urgent for us.
Thanks
Thanks
Re: TD-15670: Language issue with Sybase
Hi
Here is the bug for this issue
TD-15670
Contact your support person for updates on this issue.
JM
Here is the bug for this issue
TD-15670
Contact your support person for updates on this issue.
JM
Who is online
Users browsing this forum: [Ahrefs], [Ccbot] and 0 guests