当前位置:首页 > 个人杂谈 > 正文内容

应用程序在当前操作中使用了错误类型的值

作者: 葛屹肃 | 日期: 2021-12-06 | 分类: 个人杂谈

今天看了程序的错误日志,哇~~  全是报错:应用程序在当前操作中使用了错误类型的值,这是什么回事?

应用程序在当前操作中使用了错误类型的值

分析了一下,发现原来是存储过程的传参的长度超出所至,如:传参字符串长度为200,结果终端传过来的值超过了200时,就会报这个错误,我分析了下日志,超过9成是报这个错误的。于是赶紧做下防呆。

if length(TermData) > 200 then
begin
ClientInfo.Stock[infoIndex].SendMessage := ‘装箱标签不正确!’+Enter+AC3List.Strings[1];
ClientInfo.Stock[infoIndex].larum := ’1′;
goto AC3Send;
end;
spServer.Close;
spServer.Parameters.Clear;
spServer.ProcedureName := ‘BARCODE_GME_CP2_PUD2_MANAGE’;
spServer.Parameters.CreateParameter(‘IN_CODE’,ftString,pdInput,200,TermData);
spServer.Parameters.CreateParameter(‘DIV’,ftString,pdInput,5,s_DivCode);
spServer.Parameters.CreateParameter(‘IN_TermIP’,ftString,pdInput,20,ClientIP);
spServer.Parameters.CreateParameter(‘MAST_KEY’,ftInteger,pdOutput,10,0);
spServer.Parameters.CreateParameter(‘OUT_QTY’,ftString,pdOutput,10,”);
spServer.Parameters.CreateParameter(‘OUT_TYPE’,ftString,pdOutput,20,”);
spServer.Parameters.CreateParameter(‘OUT_LIST’,ftString,pdOutput,500,”);
spServer.Parameters.CreateParameter(‘OUT_CODE’,ftString,pdOutput,500,”);
spServer.Parameters.CreateParameter(‘HINT’,ftString,pdOutput,100,”);
spServer.prepared:=true;
spServer.ExecProc;

主要有2个存储过程调用时,会出现这种情况,这也是我没有想到的,看到数据时感觉有点不可思议,为何同样的二维码会传2次甚至多次才发送过来呢?按我理解每个二维码扫一次即传一次的。

这种错误自己调试根本不会出现,而程序又是放至客户的服务器中,很少去看报错,只有用户反馈使用时有问题,才会跟客户的IT部门申请查看日志的。

怪不得用户会反馈偶尔会卡死的现象,原来是程序处理有问题,希望修复后会减少出错机率吧。

版权声明:本文由〖葛屹肃〗发布,转载请注明出处!
文章链接:https://www.geyisu.com/2291.html

  • 评论:(0)

已有 0 位网友发表了一针见血的评论,你还等什么?

◎欢迎大家参与讨论