Задний план
Я использую RAD Studio XE2 с dbExpress, пытаясь получить набор результатов из хранимой процедуры, находящейся в DB2 для IBM i (AS / 400).
Имеет драйвер dbExpress для AS / 400. Я использую Peter Sawatzki (кажется официальным).
процедура имеет один параметр smallint. Я запрашиваю его с CALL MYPROC(1)
в TSQLQuery
.
Мои TSQLConnection
параметры:
DriverUnit=DbxDynalink
LibraryName=dbexpca400.dll
GetDriverFunc=getSQLDriverCA400
Database=192.168.81.97
User_Name=myusername
Password=mypwd
Role=MYDEFAULTSCHEMA
VendorLib=cwbdb.dll
ErrorResourceFile=
ConnectionString=
HostName=
MaxBlobSize=-1
AS400 TransIsolation=DirtyRead
CommitRetain=True
AutoCommit=True
ServerCharSet=
LocaleCode=0000
RowsetSize=-1
Connection Timeout=-1
Trim Char=False
Ошибка
Когда я активирую TSQLQuery
, я получаю
cwbDB_Execute вернул код ошибки 6038.
Код ошибки сервера 2 класса -403
Идентификатор сообщения: PWS0011
Si è verificato un errore durante la conversione dei caratteri. Причина ...: Если тип ошибки 2 подтвержден, преобразование CCSID-клиента 0 на CCSID-сервере 1144. [...] 2 - CCSID-клиент или сервер 0 и не согласованы. [...]
На итальянском языке указано, что CCSID сервера - 1144, а CCSID клиента - 0, что недопустимо.
Что я пробовал
Поэтому я попытался установить его, используя ServerCharSet
параметр, вдохновленный файлом readme драйвера, который использует 424,1255
для иврита. У меня итальянская система с набором символов 695 и кодовой страницей 1144. Я пробовал много комбинаций для параметра ServerCharSet
, но лучшее, что я получил, это 2 новые ошибки:
- # P12 #
# P13 # # P14 # # P15 # # P16 #
ServerCharSet=1144,695
даетcwbDB_StartServer вернул код ошибки 6052.
CWBNL0102 - Таблица преобразования C: \ Users \ Public \ Documents \ IBM \ Client Access \ 02b734b0.tbl инвалида или исправления
CWBNL0101 - Подтверждено ошибочное преобразование из данных на кодовой странице 13488 a 695.
CWBNL0101 - Подтверждено ошибочное преобразование из данных с кодовой страницы 1144 a 695.
CWBDB0052 - Подтверждено ошибочное преобразование данных
CWBDB0052 - Подтверждено ошибочное преобразование данных
[...]
Установка LocaleCode
параметра (не задокументирована) не имеет значения.
Вопрос
Как правильно установить CCSID клиента?