2

背景

我正在使用带有 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?

4

1 回答 1

0

文档显示 from 和 to 字符集。只需将 ServerCharSet 设置为 37 对我有用: ServerCharSet=37

于 2014-05-14T17:42:28.477 回答