当前位置:首页 > 用友解决方案 > 用友知识堂 > 用友T3建年度账时报错,提示:将截断字符串或二进制数据

用友T3建年度账时报错,提示:将截断字符串或二进制数据

问题现象:用友T3财务软件在年结的时候建立年度账的时候提示:将截断字符串或二进制数据。错误提示如下图所示。Inventory表的cInvStd列(规格型号),列长为80字符,而默认是60字符,所以报错。

用友T3建年度账时报错,提示:将截断字符串或二进制数据 用友T3 第1张

问题分析:使用事件探测器跟踪出错语句如下:INSERT INTO Inventory(cInvCode,cInvAddCode,cInvName,cInvStd,cInvCCode,…) Values('100001','KKHP','咳快好片','26.4mg*96T[大连天宇海滨制药有限公司]','10',…)

解决方案:供应商档案里的供应商简称长度为60个字符(即30个中文字),由于用户供应商简称过长而不够使用,从而修改表Vendor(供应商档案表)的cVenAbbName字段列(供应商简称)的长度为70个字符,导致新年度账在传输基础数据表Vendor时报错,具体报错情况和修改流程如下(注:账套号333,年度2008,新建2009年年度账时报错,修改以说明的方式2为例)

1、用友T3软件建立新年度账时报错,提示:将截断字符串或二进制数据

用友T3建年度账时报错,提示:将截断字符串或二进制数据 用友T3 第2张

2、原因是Ufmodel库生成的新年度账Vendor表的cVenAbbName列长度为60,而去年此列长度为70,导致在不能写入此表数据:

用友T3建年度账时报错,提示:将截断字符串或二进制数据 用友T3 第3张

用友T3建年度账时报错,提示:将截断字符串或二进制数据 用友T3 第4张

3、当然如果2008年cVenAbbName列没有记录数大于60个字符,在新年度中插入表记录时也没问题,但进表观察有一记录为33个中文字(66个字符),所以原因在于33个中文字插入失败:

用友T3建年度账时报错,提示:将截断字符串或二进制数据 用友T3 第5张

4、如果采用方式1修改一下2008年此供应商简称改为30个中文字之内,等生成新年度账后再改为原供应商简称即可,现在采用方式2修改Ufmodel库,操作如下,先还原Ufmodel数据库:

用友T3建年度账时报错,提示:将截断字符串或二进制数据 用友T3 第6张

5、在常规栏中数据库名称为Ufmodel:

用友T3建年度账时报错,提示:将截断字符串或二进制数据 用友T3 第7张

6、选项栏物理文件名可能硬盘中不存在,需手工调整,如改为c:\ufdata.ldf和c:\ufdata.mdf:

用友T3建年度账时报错,提示:将截断字符串或二进制数据 用友T3 第8张

7、现在Ufmodel数据库已正常还原,然后调整数据库结构,找到Vendor表选设计表:

用友T3建年度账时报错,提示:将截断字符串或二进制数据 用友T3 第9张

8、修改cVenAbbName列长度为70:

用友T3建年度账时报错,提示:将截断字符串或二进制数据 用友T3 第10张

9、修改后保存,现在数据库结构已做调整,接下去备份Ufmodel数据库:

用友T3建年度账时报错,提示:将截断字符串或二进制数据 用友T3 第11张

10、覆盖原Ufmodel.bak文件即可:

用友T3建年度账时报错,提示:将截断字符串或二进制数据 用友T3 第12张

11、再建立2009年新年度账,建立成功:

用友T3建年度账时报错,提示:将截断字符串或二进制数据 用友T3 第13张