I have a VB 6 application that functions as a Russian-English glossary. The data is stored in a SQL Server 2000 database using the Latin General collation. The Cyrillic data in the database appears as accented Latin characters on the server, but displays in Cyrillic on the clients in some cases. My users have a system addin called Parawin to handle Cyrillic on their systems. Parawin allows the custom selection of Windows and DOS system codepages. They also use a mixture of operating systems going back as far as Windows 95.
I have two problems really, but solving the first will take care of the second.
The first problem is that when the users select Cyrillic Windows (1251) and DOS (866) codepages in Parawin, the data returned from the database no longer appears in Cyrillic. Instead, it appears as the unaccented equivalents of the Latin characters that exist in the higher code points occupied by the Cyrillic characters. Also, searches submitted using Cyrillic characters no longer function. This problem is resolved when setting the DOS codepage to Western (437), but this creates a second problem of preventing the proper use of the clipboard for Cyrillic data. The data appears as Latin characters when pasted into MS Word, and when converted to Times New Roman Cyr, the Cyrillic data is replaced with boxes. The Cyrillic only appears properly when converted to the Timesse font. This is a system wide problem that does not occur when the DOS codepage is set for Cyrillic
What I would like to do is allow for Cyrillic DOS and Windows codepages on the clients, and account for the conversion that is occurring between them and the database. In attempts to solve this problem, I have changed the database collation, and rebuilt the instance with Cyrillic as the default collation, and I have modified the ODBC character translation option. I have also tried manipulating the font in the application and used several different text boxes, including the standard VB (Ruby) textbox, the MS Office Forms 2.0, and the rich edit control.
The application is three-tier with the data-access components residing in MTS on the same NT4 box as the SQL Server 2000 instance. I did find one note in the SQL Server Books that mentions the problem of cross codepage character conversion, but the proposed solution is “only use characters that have equivalents in both codepages and hence are easily converted.” After I stopped laughing, I cried. Then I wrote this post.
Any help you could provide would be greatly appreciated.
Thank you,
Asa Monsey
Maxim Group Visual Basic Consultant
TechTrans International, Inc.