|
|
|
Русские буквы в Sybase ASA 7
|
|||
|---|---|---|---|
|
#18+
Здравствуйте уважаемые форумчане. У меня вопрос по Sybase ASA 7. Я не могу подключиться так, чтобы нормально работать с русскими буквами. Использую следующую строку подключения: DRIVER=Adaptive Server Anywhere 7.0;UID=psds;PWD=psds;CommLinks=TCPIP{TO=1},SharedMemory;DisableMultiRowFetch=No;Debug=No;Integrated=No;AutoStop=No;EngineName=TEST_SQL_SERVER;TranslationDLL=C:\Program Files\Sybase\SQL Anywhere 7\win32\dbodtr7.dll;TranslationName=Adaptive Server Anywhere 7.0 Translator;TranslationOption=1 В ней указывается сибейсовский транслятор, при котором следующие ограничения: 1. В результатах запроса русские буквы отображаются нормально. 2. При выполнении запроса, если в нем присутствуют русские буквы, он почемуто ругается на неправильный синтаксис. При этом, видимо, серверу запрос передается в юникоде, хотя отправляется в 1251. Если не указывать транслятор: 1. Результаты выдаются в юникоде. Пробовал указывать разные значения Charset, не помогает. Что делать не знаю, помогите, а? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2008, 18:03 |
|
||
|
Русские буквы в Sybase ASA 7
|
|||
|---|---|---|---|
|
#18+
1. определи в какой кодировке создана база (не помню как) 2. как знаешь что результат в юникоде? (подозреваю что это не так) 3. как ругается сервер на кирилицу? какой запрос посылаешь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.03.2008, 22:14 |
|
||
|
Русские буквы в Sybase ASA 7
|
|||
|---|---|---|---|
|
#18+
1. Не определил потому что сам не знаю как. 2. Может и в какойто другой. 3. Говорит ошибка в синтаксисе и показывает отрывок из запроса, в котором вместо русских букв текст именно в этой кодировке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2008, 15:18 |
|
||
|
Русские буквы в Sybase ASA 7
|
|||
|---|---|---|---|
|
#18+
Во первых сделай SELECT DB_PROPERTY ( 'CharSet ' ); .... впрочем не уверен было ли это в семерке или нет. Посмотри окно серевера, возможно там есть что-то про кодировки. И кажется в ASA ранее девятки у сервера был специальный ключик для работы с кодировками. Убери транслятор вообще и попробуй кинуть запрос. Лучше всего напрямую через C-ODBC чтобы иметь доступ к сырым байтам текста, узнаешь в какой кодировке у тебя посылается/возращается текст в действительности. Потом включи трансялтор и пробуй еще раз... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2008, 16:35 |
|
||
|
Русские буквы в Sybase ASA 7
|
|||
|---|---|---|---|
|
#18+
DB_PROPERTY выдало cp866. Как сделать чтобы было cp1251? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2008, 18:04 |
|
||
|
Русские буквы в Sybase ASA 7
|
|||
|---|---|---|---|
|
#18+
При чем саму базу и ее кодировку менять нельзя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2008, 18:05 |
|
||
|
Русские буквы в Sybase ASA 7
|
|||
|---|---|---|---|
|
#18+
tumanov777DB_PROPERTY выдало cp866.Ну вот, теперь ты знаешь из чего надо конвертировать. Если будешь работать вообще без транслятора, то сможешь использовать собственную функцию конвертации из/в cp866. А чтобы поручить это транслятору надо сказать ему в какой кодировке твой клиент хочет получать текст. Это делается ключом charset в строке коннекта. tumanov777Как сделать чтобы было cp1251?Уже никак. Кодировка хранения задается при создании базы и не меняется в течении всей жизни базы. Теперь можно только перезалить базу целиком. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2008, 18:14 |
|
||
|
Русские буквы в Sybase ASA 7
|
|||
|---|---|---|---|
|
#18+
charset не помогает. пробовал разные - результат один - без изменений. А свой транслятор какнить можно написать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2008, 18:45 |
|
||
|
Русские буквы в Sybase ASA 7
|
|||
|---|---|---|---|
|
#18+
tumanov777charset не помогает. пробовал разные - результат один - без изменений. А свой транслятор какнить можно написать?Можно, но зачем? Если сейчас кто-нибудь не прийдет знающий (а не помнящий) семерку, то может подскажет как правильно использовать транслятор. Я уже просто не помню, в девятке это слегка упростили :) Но в принципе, как я уже говорил можешь вообще забыть про транслятор и самостоятельно делать конвертацию всех текстов перед отправкой в базу и после прочтения из базы. Это будет слегка неудобно, но работать будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2008, 18:52 |
|
||
|
Русские буквы в Sybase ASA 7
|
|||
|---|---|---|---|
|
#18+
сделай dbunload конвертни все файлы из 866 в 1251 создай новую БД с cp1251 запусти полученый reload.sql ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.03.2008, 19:35 |
|
||
|
Русские буквы в Sybase ASA 7
|
|||
|---|---|---|---|
|
#18+
У нас есть нормально работающие приложения с БД(cp866) на АСА6. Приложения на ПБ6.5 под виндами, в строке подключения добавлено только TranslatorDLL. Ничего не глючит, ошибок нет. Можно запустить сервер БД с ключиком ct, тогда сервак сам будет конвертить в кодовую страницу клиента. Ее он определяет по сообщениям от клиентского драйвера. Если клиент под линуксом, то сервак выдает данные в юникоде. Короче эксперименты, эксперименты и еще раз эксперименты. Каждый раз смотреть на свойства CHARSET подключения. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.03.2008, 20:07 |
|
||
|
|

start [/forum/topic.php?fid=55&fpage=54&tid=2011666]: |
0ms |
get settings: |
5ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
43ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 199ms |
| total: | 318ms |

| 0 / 0 |
