背景
我正在使用带有 dbExpress 的 RAD Studio XE2,试图从驻留在DB2 for IBM i (AS/400) 上的存储过程中检索结果集。
有用于 AS/400的dbExpress 驱动程序,我使用Peter Sawatzki 的(似乎是官方的)。
该过程有一个 smallint 参数。我用CALL MYPROC(1)
in查询它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。原因 ...: Sièverificato un tipo di errore 2 durante la conversione dal CCSID 客户端 0 nel CCSID del server 1144。 [...] 2 -- Il CCSID client o del server è 0 e non è 同意。[...]
在意大利语中,它说服务器 CCSID 是 1144,而客户端 CCSID 是 0,这是不允许的。
我试过的
所以我尝试使用ServerCharSet
参数来设置它,灵感来自424,1255
用于希伯来语的驱动程序自述文件。我有一个字符集 695 和代码页 1144 的意大利系统。我尝试了许多ServerCharSet
参数组合,但我得到的最好的是 2 个新错误:
ServerCharSet=695,1144
给cwbDB_PrepareDescribe 返回错误代码 6036。
服务器错误 1 类代码 -104
消息 ID:[损坏的字符]
[带有损坏字符的消息...]
ServerCharSet=1144,695
给cwbDB_StartServer 返回错误代码 6052。
CWBNL0102 - La tabella di conversione C:\Users\Public\Documents\IBM\Client Access\02b734b0.tbl invalida o corrotta
CWBNL0101 - Si Š verificato un errore durante il tentativo di conversione dei dati dalla 代码页 13488 a 695
CWBNL0101 - Si Š verificato un errore durante il tentativo di conversione dei dati dalla 代码页 1144 a 695
CWBDB0052 - Si Š verificato un errore durante la conversione dei dati
CWBDB0052 - Si Š verificato un errore durante la conversione dei dati
[...]
设置LocaleCode
参数(未记录)没有区别。
问题
如何正确设置客户端 CCSID?