Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Кодировка proxy-таблицы
|
|||
|---|---|---|---|
|
#18+
Создал proxy-таблицу - сервер Sybase ASE 12.5 , remote сервером является Sybase ASA 9.0 . При просмотре прокси таблицы (через консоль, isql и т.д.) кирилица отображается квадратиками. Начал копать оказалось default кодировка на Sybase ASE 12.5 iso_1 , на Sybase ASA 9.0 - cp1251 . Как можно выкрутиться в такой ситуации и настроить/изменить кодировку прокси таблицы? Естественно изменять кодировки по умолчанию на серверах не представляется возможным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2007, 21:58 |
|
||
|
Кодировка proxy-таблицы
|
|||
|---|---|---|---|
|
#18+
> Естественно изменять кодировки по умолчанию на серверах не представляется возможным. Честно говоря, это противоестественно. Возможно, может помочь клиентские настройки на сервере, где стоит ASE. Но лучше всего, исправьте кодировку сервера. Переход iso_1 -> 1251 должен пройти без проблем, хотя и с перенастройкой клиентских машин. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.03.2007, 23:22 |
|
||
|
Кодировка proxy-таблицы
|
|||
|---|---|---|---|
|
#18+
Повтрю ещё раз, изменить кодировку серверов не представляется возможным. Сейчас эксперементирую подсоединяя прокси таблицей - вьюшку, в которой пробую переконвертить поле с кирилицей CSCONVERT(Name,'iso_1') as Name, но результат не меняется, опять при просмотре прокси таблицы кирилица - квадратики. Ради эксперимента пробовал разные кодировки (cp1251, UTF8, roman8), только при cp866 часть квадратиков меняется на нечитабельные иероглифы (например: "®§© 6 ¬). Кстати при использовании CSCONVERT тип поля в прокси таблице определяется как image. Может кто-то подскажет как можно выкрутиться и нормально отобразить кирилицу?! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2007, 12:14 |
|
||
|
Кодировка proxy-таблицы
|
|||
|---|---|---|---|
|
#18+
Исправь строку подключения ASE к ASA. Укажи в ней ключевое слово Charset=чего-то-там, тогда сервер ASA сам будет переконвертировать данные из кодировки хранения в кодировку клиента (ASE в данном случае играет роль клиента). --- http://www.rusug.ru] Портал русскоязычной группы пользователей Sybase ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2007, 17:24 |
|
||
|
Кодировка proxy-таблицы
|
|||
|---|---|---|---|
|
#18+
Так, а где можно указать эту самую таблицу кодировки в строке подключения? В настройках Remote Servers (master..sysservers) я не нашел такого параметра, в sql.ini тоже. Кроме того меня смущает, что при выполнении запроса convert(varchar,CSCONVERT(Name,'iso_1')) на сервере ASA9.0 где хранятся данные, результат те же квадратики вместо кирилицы... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2007, 17:40 |
|
||
|
Кодировка proxy-таблицы
|
|||
|---|---|---|---|
|
#18+
CherubТак, а где можно указать эту самую таблицу кодировки в строке подключения? В настройках Remote Servers (master..sysservers) я не нашел такого параметра, в sql.ini тоже.Естественно ты этого параметра ты в своей строке подключения не найдешь, его же там еще нету :) Ищи где у тебя задается "EngineName=aaaa;UID=bbb;PWD=ccc;LINKS=ddddd;CHARSET=eeee" Вместо EngineName может быть написано ENG=aaa или ServerName=aaa. Это все синонимы. CherubКроме того меня смущает, что при выполнении запроса convert(varchar,CSCONVERT(Name,'iso_1')) на сервере ASA9.0 где хранятся данные, результат те же квадратики вместо кирилицы...Ну так а твой клиент в какой кодировке работает? Когда ты стартуешь dbisql, он автоматически читает предпочтительную кодировку твоей OS и стартует в ней. Хочешь чтобы он стартовал в другой кодировке - запускай с ключом -codepage iso_1. После этого, convert(varchar,CSCONVERT(Name,'iso_1')) должен заработать, но простой select уже покажет квадратики. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2007, 18:17 |
|
||
|
Кодировка proxy-таблицы
|
|||
|---|---|---|---|
|
#18+
White Owl Естественно ты этого параметра ты в своей строке подключения не найдешь, его же там еще нету :) Ищи где у тебя задается "EngineName=aaaa;UID=bbb;PWD=ccc;LINKS=ddddd;CHARSET=eeee" Вместо EngineName может быть написано ENG=aaa или ServerName=aaa. Это все синонимы. Вот я и не знаю, где искать эту строку подключения. В настройках Remote Servers при работе через консоль (сервер я добавлял через консоль) параметра CHARSET нет. В системных таблицах я нашел только упоминание про имя удалённого сервера и класс подключения (в таблице master..sysservers), но строки подключения там нет. В sql.ini, где я описывал параметры подключения указано следующее Код: plaintext 1. 2. 3. Строка вида "EngineName=aaaa;UID=bbb;PWD=ccc;LINKS=ddddd;CHARSET=eeee" очень смахивает на строку подключения ОДБС, но я такого нигде не описывал и не нашел. Если при добавлении удалённого сервера через консоль такое создается, то где оно хранится? Хотя по моему консоль создает только запись в таблице sysservers. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2007, 19:29 |
|
||
|
Кодировка proxy-таблицы
|
|||
|---|---|---|---|
|
#18+
если вы в iso_1 храните cp1251 как есть без перекодировки то может помочь такое (может быть): еще в ASA постройте вьющку которая конвертит строки в image при передаче image(varbinary) не конвертится тогда при приеме в ASE у вас в image будет cp1251 вам останется конвертнуть image->char в ASE: Код: plaintext 1. 2. 3. 4. 5. 61656600000000000000aef ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2007, 20:34 |
|
||
|
Кодировка proxy-таблицы
|
|||
|---|---|---|---|
|
#18+
Dmitry. еще в ASA постройте вьющку которая конвертит строки в image при передаче image(varbinary) не конвертится тогда при приеме в ASE у вас в image будет cp1251 вам останется конвертнуть image->char Я уже пытался сделать так, но не получилось.Делал так, во вьюшке описывал поле Код: plaintext 1. Но выполняя запрос к прокси таблице с преобразованием Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.03.2007, 23:17 |
|
||
|
Кодировка proxy-таблицы
|
|||
|---|---|---|---|
|
#18+
да... провел тесты с запросом: Код: plaintext 1. 2. 3. 4. ASE (utf8/utf8) d0b9d186d183d0bad0b5d0bd0000000000000000 йцукен ASE (server:roman8 client:iso_1) c5cec6c1d4d50000000000000000000000000000 йцукен ASA (1251) e9f6f3eae5ed йцукен E9 это и есть ASCII код символа й ХА! ASE (server:roman8 client:roman8) e9f6f3eae5ed0000000000000000000000000000 йцукен это уже похоже на 1251 Проверьте что у вас в АСЕ чарсет на клиенте и сервере одинаковый иначе АСЕ конвертит все в соответствии с этими установками. Если чарсет одинаковый то никакой перекодировки нет. достигнуть того-же можно еще ОТДЕЛЬНОЙ коммандой в АСЕ указать Код: plaintext короче у меня все получилось... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 11:06 |
|
||
|
Кодировка proxy-таблицы
|
|||
|---|---|---|---|
|
#18+
Сижу тестирую, наткнулся на такой финт: Если просто выполнять запрос (значение 0xcfe5edf1e8eeededfbe9203920ece5f1 взято с таблицы и на ASE и на ASA одинаковое) Код: plaintext 1. 2. Но если подключить в условии from прокси таблицу, то квадратики во всех полях: Код: plaintext 1. 2. 3. 4. Если подключить любую другую, не прокси таблицу, опять отображает кирилицу... Код: plaintext 1. 2. set char_convert on/off никак не повлиял на результат ;( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 11:43 |
|
||
|
Кодировка proxy-таблицы
|
|||
|---|---|---|---|
|
#18+
а что дает такой запрос? Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 14:14 |
|
||
|
Кодировка proxy-таблицы
|
|||
|---|---|---|---|
|
#18+
Dmitry. а что дает такой запрос? Код: plaintext 1. 2. Дает следующее: Код: plaintext Кстати при использовании в одном запросе (хоть select, хоть insert) двух таблиц, одна из которых прокси, поле Name прокси таблицы содержащее varbinary возвращает null!!! т.е. например при выполнении запроса: Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 14:42 |
|
||
|
Кодировка proxy-таблицы
|
|||
|---|---|---|---|
|
#18+
Мысль пришла мимоходом, может поможет. Сам не сталкивался и попробовать не могу(ASE нет). Здесь уже упоминали про ODBC. Вроде как в настройках ODBC ASA9 можно указать CHARSET. А может сервер ASA9 прописать как источник в ODBC с CHARSET нужным. А в ASE прописать Remote Servers через ODBC. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 14:56 |
|
||
|
Кодировка proxy-таблицы
|
|||
|---|---|---|---|
|
#18+
antand А в ASE прописать Remote Servers через ODBC. В ASA настроить Remote Servers через ODBC нет проблем, а как это сделать в ASE??? И вообще возможно ли такое в ASE? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.03.2007, 17:25 |
|
||
|
Кодировка proxy-таблицы
|
|||
|---|---|---|---|
|
#18+
Люди! Проблема всё ещё актуальна, кто подскажет как получить данные прокси-таблицы в нормальной кодировке? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2007, 10:49 |
|
||
|
Кодировка proxy-таблицы
|
|||
|---|---|---|---|
|
#18+
Cherub Люди! Проблема всё ещё актуальна, кто подскажет как получить данные прокси-таблицы в нормальной кодировке? Я в свое время ходил из FreeBSD к ASA использую FreeTDS, может тебе это поможет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2007, 18:19 |
|
||
|
Кодировка proxy-таблицы
|
|||
|---|---|---|---|
|
#18+
Sergey Orlov Я в свое время ходил из FreeBSD к ASA использую FreeTDS, может тебе это поможет? Операционка Windows 2003 - не Unix, поэтому как это может помочь не вижу... ;-( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2007, 18:28 |
|
||
|
Кодировка proxy-таблицы
|
|||
|---|---|---|---|
|
#18+
попробуйте подключиться к аса как к асе прописать его в sql.ini и создать ремоут сервер типа ASE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2007, 11:38 |
|
||
|
Кодировка proxy-таблицы
|
|||
|---|---|---|---|
|
#18+
Dmitry.попробуйте подключиться к аса как к асе прописать его в sql.ini и создать ремоут сервер типа ASE Попробовал - результат никак не изменился (если не обращать внимание на ругань при конвертации полей datetime). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2007, 13:34 |
|
||
|
Кодировка proxy-таблицы
|
|||
|---|---|---|---|
|
#18+
Вообщем пока решил эту проблему через изврат, в основе которого использовал идею Dmitry. (за что ему огромное, человеческое спасибо ;-) ), а именно: Написал процедуру которая на ASE берет данные прокси таблицы конвертит поля с кирилицей в varbinary и запихивает их во временную таблицу, а потом со временной таблицы сливает в новую таблицу и поля varbinary конвертит в varchar. В результате получается новая (не прокси) таблица, которая содержит нормальную кирилицу. Выглядит это так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.03.2007, 13:45 |
|
||
|
|

start [/forum/topic.php?fid=55&msg=34372182&tid=2012207]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
36ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
69ms |
get tp. blocked users: |
2ms |
| others: | 255ms |
| total: | 404ms |

| 0 / 0 |
