powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Проблема с работой через ODBC
5 сообщений из 5, страница 1 из 1
Проблема с работой через ODBC
    #36959495
Victor_V_S
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите пожалуста решить проблему

Имеется хранимая процедура написанная на COS. Обнаружилось следующее:
на сервере под Windows данные возвращаемые процедурой нормальные
на сервере под Unix данные возвращаемые процедурой почему то в какой то другой кодировке.

Вместо русских символов что то непонятное.
На сервере под Unix были написаны две тестовые хранимые процедуры одна на SQL, другая на
COS
Процедура на SQL работает нормально, а процедура на COS почему то возвращает данные в
другой кодировке.
Клиентская программа работает в 1С и вызов хранимой процедуры производится через ADO
RecordSet.

Версия Cache:
Cache for UNIX (Solaris UltraSPARC/64-bit) 5.0.21 (Build 6408 + Adhoc 3745)

Вот текст тестовых процедур:

Query TestProcSQL() As %SQLQuery [ SqlProc ]
{
SELECT ID,NameLp FROM MTSLp
}

Query TestProcCOS() As %Query(ROWSPEC = "ID:%Integer,NameLp:%String") [ SqlProc ]
{
}
...
Рейтинг: 0 / 0
Проблема с работой через ODBC
    #36968424
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Victor_V_S,

Судя по версии Caché, она у Вас 8-битная.

Возможно, в случае с SQL происходит неявная перекодировка строк (см. параметр SELECTMODE у Query, а также SQL-функции %EXTERNAL, %INTERNAL, %ODBCIN, %ODBCOUT ).

PS: воспроизводится ли поведение в новых версиях Caché?
...
Рейтинг: 0 / 0
Проблема с работой через ODBC
    #36969255
Victor_V_S
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как работает на новых версиях, сказать не могу.
Если в SQL запросе происходит неявная перекодировка, то как можно подобную перекодировку сделать в запросе на COS ?
...
Рейтинг: 0 / 0
Проблема с работой через ODBC
    #36969293
servit
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
$zconvert

Например:
Код: plaintext
1.
2.
w $zcvt("Тест","O","CP866")
w $zcvt("Тест","O","CP1251")
...
Рейтинг: 0 / 0
Проблема с работой через ODBC
    #36969811
Victor_V_S
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это не помогло.
Тестировал на ODBC View. Все то же самое. Что характерно, похоже не понимает тип данных %String.
Если:
ClassMethod TestProcCOSFetch(ByRef qHandle As %Binary, ByRef Row As %List, ByRef AtEnd As %Integer = 0) As %Status [ PlaceAfter = TestProcCOSExecute ]
{
s $li(Row,1)="123"
Quit $$$OK
}

Query TestProcCOS() As %Query(ROWSPEC = "NAME:%Integer") [ SqlProc ]
{
}


то цифры выводятся нормально

Если
Query TestProcCOS() As %Query(ROWSPEC = "NAME:%String") [ SqlProc ]
{
}
то даже строка из цифр не выводится.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Проблема с работой через ODBC
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]