关于delphi ide 触发internal error:sy576错误的探秘

        好久没有用delphi 7写小程序了,今天偶发兴致,写了一个简单的数据处理程序。本来似乎很简单的一个批量导入数据的程序,没想到竟然触发了internal error:sy576错误!老实说这种错误很少见到,网上查找了一下,感觉语焉不详。经过反复的断点测试,终于知道了引起这个错误的一个问题点。在此供大家参考,也希望得到高手的指点。

        我的IDE是Delphi 7,数据库是dbisam,程序功能是从excel表批量导入记录到数据库。为了控制异常,在导入操作之前先对记录作判断,防止不规范的记录被导入。判断条件有8个类似Excelid.worksheets[1].cells[r1,1].value数值判断条件语句,由于过长,所以依据pascal语言规范,起了8行录入,万万没想到的居然就是这个触发了internal error:sy576错误!

          由于internal error:sy576错误出现之后,IDE在编译的时候就随机的开始报各种莫名其妙的错误——哪怕几乎将所有语句注释掉,甚至直接将IDE给弄崩溃了。如是关闭程序,关闭IDE,再来,还是报错!反复针对性的调试后,尝试新开8个变量逐条将对应excel记录值替换,将条件判断语句进行缩减到1行,不再报错!

          细思这一问题,应该是编译器在处理超长字符串的时候(不仅原变量字符串过长,再加上视觉原因并排排版,中间又无意加入那么多空字符串),导致编译器撑傻了!不知道这算不算编译器的一个bug。当然编译器必尽只是人脑思维的产物,不可能将所有的情况考虑进去,再加上为了程序开发的便利,减少了约束,以至不经意间就形成了这个漏洞。当然也提醒编写程序要尽量规范简洁。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值