用友年结出现将截断字符串或二进制数据终极解决方案
统一处理将截断字符串或二进制数据异常

统⼀处理将截断字符串或⼆进制数据异常
该错误是字段过长的原因, 对应的异常类型是DataTruncation. 因为在实际场景中,没有必要把所有字段都⽤最长字符, 会造成不必要的资源浪费. 但是通过代码⼀⼀去控制长度⼜不够优雅.我们可以通过在捕获异常时,针对这个异常,进⾏处理/提⽰.
1.定义⼀个⼯具类,⽤于在异常链中获取异常
public class ExceptionUtils {
/**
* 从异常的异常链中获取指定类型的错误.
*/
public static Throwable getTargetException(Exception e, Class<?> targetE) {
if (e == null) return e;
Throwable throwable = e.getCause();
while (throwable != null && !throwable.getClass().isAssignableFrom(targetE)) {
throwable = throwable.getCause();
}
return throwable;
}
}
2.在异常处理中进⾏特殊处理即可
Throwable t = ExceptionUtils.getTargetException(ex, DataTruncation.class);
if(t != null && t instanceof DataTruncation) {
msg = "你输⼊的内容过多!";
}
本⽂到此结束。
文本编辑器 将截断字符串或二进制数据. 语句已终止 从客户端 Request.Form 值。获取后台数据值

Mvc模式文本编辑器<textarea id="context1"style="width:200; height:98%; overflow:auto; border: none;"class="easyui-validatebox"name="context1"></textarea>js脚本语言<script type="text/javascript">var editor;KindEditor.ready(function (K) {var options = {cssPath: '../../kindeditor-4.1.7/examples/default.css',uploadJson: '../../kindeditor-4.1.7//upload_json.ashx', fileManagerJson: '../../kindeditor-4.1.7//file_manager_json.ashx', filterMode: true,syncType: "auto",width: 800,height: 300,afterChange: function () {this.sync();},afterBlur: function () {this.sync();}}editor = K.create('#context1', options);html = editor.html();html = document.getElementById('Descript').value;html = K('#context1').val();//html = $('#context1').val();allowFileManager: true;});$(document).ready(function () {$("#context1").html($("#Descript").val());});function submit() {document.all.form1.submit();};</script>双加时间获取字段为Descript的数据值$(function () {var gridTable = $("#gridTable").datagrid({onDblClickRow: function (rowIndex, rowData) {editor.html(rowData.Descript);var d = new Date();var str = "\r\n";str += d.toLocaleString();str += "\r\n";editForm.form('clear');editForm.form('load', rowData);editForm.form('load', { context: rowData.context + str });formDl.dialog('open');}文本编辑器保存图片时(其中数据库的字段类型为varchar(50))可能出现的错误提示(将截断字符串或二进制数据. 语句已终止.)解决办法:字符串长度不够,将字符串长度加大(varchar(100));也可能出现这样的错误(从客户端(content1="<imgsrc="/web/news/...")中检测到有潜在危险的Request.Form值。
将截断字符串或二进制数据错误

此种问题多可通过“事件探查器”的跟踪查到相 应语句,再通过sql函数substring(数据字段,起 始字符,截取长度)来查到相应问题字段。
报错截图
处理步骤:1.先确认问题单据
2.打开事件探查器,跟踪出错时的语句
3.将跟踪出的语句粘贴到查询分析器中执行
4.使用substring函数找到问题字段。
分享经验
互助合作
谢谢Biblioteka 5. cDefine9是自定义项字段,检查是什么自定义项
6.打开材料出库单列表,查“产品名称”的 数据
7.将材料出库单表头项“产品名称”数据改正确再查账
总结
此等问题,多是由于客户使用了表头或表体的自 定义项,然后自定义项的数据过长造成的。 在使用substring函数时,可重点先查询cDefine** 这样的字段的长度看是否符合要求。
将截断字符串或二进制数据错误
“将截断字符串或二进制数据”错误,多高发于查 询账表的时候。主要原因是:某些账表在查询时, 系统首先要新建临时表table1,然后使用 insert into table1 Select ……from ……的语句,将select查询出的 数据插入到新建临时表中再进行调用查询,此时, 如果select语句查询的数据列的数据长度超过 table1中相同数据列的规定长度时,就会报这样 的错误。
用友财务软件在使用过程中的常见问题及对策

用友财务软件在使用过程中的常见问题及对策【摘要】使用过程中常见问题及对策包括安装问题、数据导入问题、报表生成问题、权限设置问题以及软件升级问题。
安装问题可能出现在软件安装过程中出现错误或无法完成安装,可以通过检查系统要求和重新安装来解决。
数据导入问题可能导致数据丢失或错误导入,可通过检查数据格式和重新导入解决。
报表生成问题可能是由于数据不一致或配置错误,可以通过检查数据源和重新生成报表来解决。
权限设置问题可能导致未授权的用户访问系统或数据,可以通过重新配置权限和授权解决。
软件升级问题可能导致系统不稳定或功能失效,可以通过备份数据和按照升级指南进行操作解决。
总结来看,及时解决常见问题能够提高软件的使用效率,展望未来,随着技术的进步,用友财务软件的用户体验将不断提升。
【关键词】关键词:用友财务软件、常见问题、对策、安装、数据导入、报表生成、权限设置、软件升级、总结、展望未来。
1. 引言1.1 介绍用友财务软件是一款企业财务管理软件,广泛应用于各行各业。
本文旨在探讨在使用过程中常见的问题及对策,以帮助用户更好地使用这一软件。
在使用过程中,用户可能会遇到安装问题、数据导入问题、报表生成问题、权限设置问题和软件升级问题等。
针对这些问题,我们将提供相应的对策,帮助用户解决困扰。
安装问题可能包括安装过程中出现错误提示、无法正常启动等情况,我们将介绍如何排查并解决这些问题。
数据导入问题可能涉及数据格式不匹配、导入错误等,我们将分享解决方法。
报表生成问题可能涉及报表格式不符合要求、数据显示不准确等,我们将提供相关的对策。
权限设置问题可能包括权限不足无法操作、权限设置错误导致数据泄露等,我们将指导用户如何正确设置权限。
软件升级问题可能涉及升级过程中出现程序崩溃、数据丢失等,我们将给出升级的注意事项和解决方法。
通过本文,希望能够帮助用户更好地应对在使用用友财务软件过程中遇到的问题,并享受更便捷的财务管理体验。
1.2 研究目的研究目的是为了解决在使用用友财务软件过程中常见的问题,提供相应的对策和解决方案,帮助用户更加顺利地使用软件,提高工作效率。
u8年结错误汇集

解决方法:在上年度数据库中删除该字段。
u8年结常见错误四
现象:新建年度账时,提示“对象名A无效,数据表名:A ”、“建立年度账不成功”
原因:系统库ufsystem中的表UA_ToNextYear中有多余记录A。新建年度账时,系统根据此表决定传输哪些基础信息表。如果此表有多余数据,将导致新建年度账失败。
解决方案:将用户自定义的工资项目改为另一个名称、id,然后从演示账套拷贝系统的“计件工资”项目。1、修改wa_gztblset中自定义工资项目的 名称和id,从演示账套中拷贝iGZitem_id=7的“计件工资”项目,注意顺序;2、对照wa_gztblset中记录的变化,修改 wa_gzdata与wa_gzhzb的字段;3、重新结转;4、此种情况的详细处理方式,可参考支持网站维护案例zc20040701
解决方法:1、删除wa_gztblset中多余的记录,或者删除wa_gzdata、wa_gzhzb中多余的字段;2、将wa_account.. iLastMonth改为11,将系统库表ua_account_sub中工资的年结标志bclosing改为0;3、重新结转工资。4、此种情况的详细 处理方式,可参考支持网站维护案例zc20004010601
解决方法:可用如下语句修正:
update rdrecords set bgsp=null where bgsp=0
解决方案:在UA_ToNextYear中删除提示的多余记录A,或参考执行以下语句:
delete from ufsystem..ua_tonextyear
where ctblid not in
(select name from ufdata_001_2006..sysobjects where xtype=‘u’)
用友软件年结常见提示和问题

用友软件年结常见提示和问题年结过程经常碰到一些提示和应用问题,提示可能是操作引起也有可能是数据出错的报错,应用问题指操作流程有疑惑不确定而导致未顺序进行操作。
以下将列举各模块常见的提示和问题,并且大部分附出错图示,以帮助大家判断分析问题。
注:关于问题的分析可参考年结维护技巧的处理思路.用友通总帐工资固定资产供销链年度账系统管理商贸通餐饮通人事通劳动合同用友通总账问:余额结转和明细结转的区别答:余额方式结转:系统只将该往来账按个人、客户、供应商的余额结转至下年。
明细方式结转:系统会将该往来账按个人、客户、供应商的明细余额结转至下年。
客户往来为例:假定a客户2007年9月借方发生100元,12月贷方发生100,余额为0,B客户10月份借方发生500,贷方发生200元,余额为借方300 余额结转:结转后,余额表中没有a客户的数据,只有b客户的300元。
并且也可以把a客户从客户档案中删除。
账龄分析中b客户的300元从2008年1月1日算起。
明细结转:是否结转是以在上年是否进行了往来两清为标志的。
假定上年没有往来两清,则年度结转后,a客户的和b客户的两条记录都会结转过来存放在数据库中。
产品界面仍以余额反应。
a客户档案不能删除。
账龄分析是按照余额以发生(制单)日期为期始日期。
假定上年往来两清了,则a客户的明细记录不会结转过来,a客户档案可以删除。
b客户是以未两清的记录的余额作为明细账的上年余额和账龄分析的数据问:年度结转后,某客户余额为0,删除该客户档案时,提示:答:原因是年度结转时,选择了明细结转,在年度结转前,没有进行往来两清。
这样的话,去年的发生数都会记录在今年的数据库中。
解决方法:清空年度账,往来两清后,重新年度结转问:年度结转时,提示以下错误答:是在上年往来两清时,手工勾对错误一条200元的记录和一条250元的记录想核销。
清空年度账,取消勾对,重新年度结转。
注:在客户往来两清界面上,有一个“检查”按钮,每次勾对完,最好检查一下勾对是否正确。
消息8152,级别16,状态4,第1行将截断字符串或二进制数据。语句已终止。

消息8152,级别16,状态4,第1⾏将截断字符串或⼆进制数
据。
语句已终⽌。
数据库操作时
消息 8152,级别 16,状态 4,第 1 ⾏
将截断字符串或⼆进制数据。
语句已终⽌。
这样的报错原因是你输⼊字符串的长度,超过了你数据库能录⼊的长度.
⽹上介绍最简单的⽅法, 把你数据库的值,都改为varchar(50) .
解决'将 expression 转换为数据类型 nvarchar 时出现算术溢出错误。
'
消息 8115,级别 16,状态 2,第 1 ⾏
将 expression 转换为数据类型 nvarchar 时出现算术溢出错误。
语句已终⽌。
在⽣产环境中遇到⼀个异常提⽰:“将 expression 转换为数据类型 nvarchar 时出现算术溢出错误。
”,⼀看这错误就知道是数据库的异常,赶紧检查存储过程。
发现存储过程中有将某个int值转换为nvarchar(2)的数据,⼼中⼀想,不会吧……这样也可以?万⼀int是⾃增的,过了100咋办?⼀查数据果然是此int类型值已达9800+,为确认是此处导致的问题,⾃⼰写个查询检查下:
declare @x int;
set @x = 9980;
select Convert(nvarchar(2),@x);
结果果然出现了“将 expression 转换为数据类型 nvarchar 时出现算术溢出错误。
”。
那么增加nvarchar类型的长度就⾏,改为nvarchar(8),顺利运⾏通过。
“将截断字符串或二进制数据。语句已终止……”问题的解决

“将截断字符串或⼆进制数据。
语句已终⽌……”问题的解决下⾯我把这个问题的详情记录下来,这个bug也胸闷了半天,⼀直拖了⼏天,做客服⼯作的MM也找了我很多次谈话,⼀开⼝就是“哎呀!⼜有⽤户反映不能注册啊……”。
为什么我不早些⽤google能,早些搜索,也就不⾄于⼀个⼈郁闷了。
虽然没有找到直接答案,也通过累似的问题,加上⾃⼰的不断测试,断定了这是由于数据的长度不符合才造成的,感谢google.感谢⾃⼰的不懈努⼒,终于测试出问题所在了。
解决办法当然有多种,⼀是修改数据库字段⼤⼩;⼆是加强数据强壮性,严格的输⼊判断。
⽬前是采⽤修改数据的⽅法:alter table1 alter column caller varchar(50)程序还不够强壮啊,继续锻炼!Server Error in '/Rainbow' Application.--------------------------------------------------------------------------------将截断字符串或⼆进制数据。
语句已终⽌。
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.Exception Details: System.Data.SqlClient.SqlException: 将截断字符串或⼆进制数据。
语句已终⽌。
Source Error:Line 488: myInputs.Add("InputParams" , InputParams);Line 489: myInputs.Add("RealModuleID" , ModuleID);Line 490: workflow.DoAction(wid, actionId, myInputs);Line 491: #regionLine 492: #regionSource File: C:\Inetpub\wwwroot\Rainbow\DesktopModules\TaokeCatalogs\Actions\Do.ascx.cs Line: 490Stack Trace:[SqlException: 将截断字符串或⼆进制数据。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
用友T3年结出现“将截断字符串或二进制数据”,导致无发年结
以下为终极解决方案:
一、使用用友检测工具检测问题表
首先选择问题帐套,然后选择正确帐套(可选演示帐套998 或999都行),最后对比,帐套所有问题表都会出现在检测结果
二、进入企业管理器找到错误表
三、由于SQLsever2000没有粘贴,所以需要进入查询分析器输入相应粘贴的命令
输入相应命令如图(select*into 需要复制的表名from 没有问题的实体..需要复制的表名)点击执行
将所有问题表以以上方法更改正确,然后重新年结就没有问题了
亲测没问题解决。