2007-5-23 10:45
Arrayhardwind
[求助]请专家帮忙看看:SQL Anywhere 数据同步中中文数据不能正常同步的问题
PDA端采用的是SQL Anywhere UltraLite数据库(版本9.02 3302),
后台服务器是Oracle 8i(10g也一样),
MobiLink的ODBC驱动采用的是Sybase的iAnywhere Solution9-Oracle Wire Protocol
在同步的时候,有一些字段中的不常见汉字同步出错。
如:燊(念“升”)。这些字常用与人名中。
在PC机上用Interactive SQL 查询这些汉字的时候也会出现错误。出错信息是:String data code page conversion failed
请专家们看看是什么原因。我怀疑是ODBC驱动iAnywhere Solution9-Oracle Wire Protocol的中文字库不够大。
有什么办法能解决这个问题?项目为此受阻,郁闷的不得了 。大家帮帮忙。
2007-5-25 10:08
hardwind
我把Moblink的错误信息贴上。请大家分析分析:
I. 05/25 10:04:13. <1.5> [5]: 行 #10, 列 #1 输出捆绑缓冲区: 18 字节
I. 05/25 10:04:13. <1.5> [5]: 0000: 31 00 30 00 30 00 31 00 31 00 37 00 38 00 39 00 1.0.0.1.1.7.8.9.
I. 05/25 10:04:13. <1.5> [5]: 0010: 35 00 5.
I. 05/25 10:04:13. <1.5> [5]: 行 #10, 列 #2 输出捆绑缓冲区: 12 字节
I. 05/25 10:04:13. <1.5> [5]: 0000: 31 00 38 00 32 00 36 00 30 00 30 00 1.8.2.6.0.0.
I. 05/25 10:04:13. <1.5> [5]: 行 #10, 列 #3 输出捆绑缓冲区: 4 字节
I. 05/25 10:04:13. <1.5> [5]: 0000: 89 73 1f 4f .s.O
I. 05/25 10:04:13. <1.5> [5]: 行 #10, 列 #4 输出捆绑缓冲区: 2 字节
I. 05/25 10:04:13. <1.5> [5]: 0000: 37 75 7u
I. 05/25 10:04:13. <1.5> [5]: 行 #10, 列 #5 输出捆绑缓冲区: 16 字节
I. 05/25 10:04:13. <1.5> [5]: 0000: c2 07 03 00 0d 00 00 00 00 00 00 00 00 00 00 00 ................
I. 05/25 10:04:13. <1.5> [5]: 行 #10, 列 #6 输出捆绑缓冲区: 4 字节
I. 05/25 10:04:13. <1.5> [5]: 0000: 68 51 39 8d hQ9.
W. 05/25 10:04:13. <1.5> [5]: 警告: [10050] ODBC: [DataDirect][ODBC Oracle Wire Protocol driver]String data code page conversion failed. Error in column 3.(ODBC 状态 = HY000,本地错误代码 = 0,列或参数 #3)
I. 05/25 10:04:13. <1.5> [5]: 错误环境:
I. 05/25 10:04:13. <1.5> [5]: 用户名: 5
I. 05/25 10:04:13. <1.5> [5]: 经修改的用户名: 5
I. 05/25 10:04:13. <1.5> [5]: 事务: download
I. 05/25 10:04:13. <1.5> [5]: 表名: PAT_MASTER_INDEX
I. 05/25 10:04:13. <1.5> [5]: 脚本版本: 4.0
I. 05/25 10:04:13. <1.5> [5]: 脚本: select m.patient_id,m.inp_no,name,m.sex,m.DATE_OF_BIRTH,m.CHARGE_TYPE
from pat_master_index m,nursing_shift_patient s,pats_in_hospital h,pda_manage p
where ? is not null and p.pda_id=?
and ((h.patient_id=m.patient_id and h.ward_code = p.ward_code) or (s.patient_id=m.patient_id and s.ward_code = p.ward_code))
group by m.patient_id,m.inp_no,name,m.sex,m.DATE_OF_BIRTH,m.CHARGE_TYPE
I. 05/25 10:04:13. <1.5> [5]: 错误环境结尾
2007-5-31 10:10
hardwind
顶到专家回答为止。
2007-6-5 11:29
hardwind
请专家关注
2007-6-6 09:17
hardwind
请专家帮忙看看这个问题吧
2007-6-6 14:39
Sybase特约专家
这个问题,我们会搭一个环境试验一下,如果有结果,会尽快答复的。
2007-6-6 14:52
hardwind
谢谢拉。
这个问题困扰了我好久,郁闷的要死。:cry: :cry:
拜托专家帮帮俺。:D
2007-6-6 16:04
Sybase特约专家
我试了,在ultralite里面插入“燊”字,检索,都没有问题。
然后同步,使用ASA数据库模拟远程数据库,同步到oracle 10G ,也一切正常。
2007-6-6 16:25
Sybase特约专家
附件是往ultralite插入的步骤,楼主可以照着试试,看看是否还有问题。
2007-6-6 22:08
hardwind
谢谢您的关注。
我是想把oracle中的“燊”字通过moblink同步到ultrlite中去,发生了错误。
ultrlite本身是能插入这个字的,但是moblink同步器不能用
iAnywhere Solution9-Oracle Wire Protocol驱动来识别这个字。
您可以试验将这个字从oracle同步到ultrlite中去就会出现这个错误了。
在PC机上用Interactive SQL (在Sybase Central中有这个工具)查询这些汉字的时候也会出现错误,因为Interactive SQL 用的也是那个ODBC的驱动(iAnywhere Solution9-Oracle Wire Protocol)。
2007-6-29 11:08
hardwind
专家一点也没有专家的精神。
我诚心提问,但是所谓的专家却不诚心回答。
好不容易盼来专家解答疑难,却回答的文不对题。偶再次提出疑问后,“专家”居然已经聊无音信了。
:mad: :mad: :mad: :mad:
让人失望啊!!!
2007-7-16 09:10
hardwind
请专家再看看这个未解决的问题。
2008-5-23 13:14
gulingeagle
这个是数据编码的问题。
1.核实下两边的编码是否可以相互转换。
2.看数据源中的部分数据是否存在和预设编码不一样的编码数据(垃圾数据)。如果有,替换它。
2008-8-20 10:48
starnight8
我也碰到了这个问题。有专家解答吗。。
页:
[1]

Powered by ITPUB论坛