程序员需要清醒的头脑!

没有清醒的头脑,程序员犯的错误简直就是可怕的。今天下午,我就经历了我自己亲自犯下的几个错误,把它写出来,也算一种交流吧。

1、第一个错误,调试读文件,却把该文件读成了空文件!OPENFILE打开文件,是要区分是读还是写的,这是最基本的常识问题,而我在准备读的时候,使用了写参数!可以想象。。。。而我还一直没注意,直到不得不DEBUG时,才发现,文件长度0!当时我调试的时候,还使用了KERNEL32.DLL文件做实验! 别...别紧张,呵呵,其实我自己后来也吓了一身汗,还好用的是一个备份目录中的KERNEL32文件,该文件成功的被我读成了大小为0。

2、第二个错误,SQL语句把机器写死了。是我一时有些混沌,直到死机了几次,才意识到问题。在读入大图片进数据库时,我使用UPDATEBLOB语句,这句话没问题,BLOB类型变量没问题,但是,一执行到那里,就会死机!什么原因?呵呵。。。因为我在前面的一个函数里,把TRANSACTION的AUTOCOMMIT属性给成了FALSE! 而UPDATEBLOB语句没有这个属性的允许,就一直不提交数据!因此,我这句SQL语句让机器死机了! 在前面增加一个AOTUCOMMIT=TRUE,一切OK。

4、第三个错误,大图片读写成功了,可是程序其他位置到处报错。我使用了GETFILESAVENAME去获得要写的文件位置,并且成功的把一个大图片从数据库中写入一个文件中。但是!问题出在了路径上。由于这段代码没有进行默认路径恢复,程序的其他部位出现了严重错误,一些文件找不到了,一些模块出现不认识的对象名称。 代码中应该至少加上GETCURRENTDIRECTORYA 和SETCURRENTDIRECTORYA 来恢复默认路径。

5、第四个错误,变量定义,虽然被我提前预防了。GETCURRENTDIRECTORYA 和SETCURRENTDIRECTORYA 两个文件是用使用KERNEL32这个文件里的函数,因为我使用的是一个全局函数去实现大文件读写,所以把他们在全局变量里进行外部函数引用定义。看上去没什么问题,但是实际上是有问题的。因为我们有一个专门的文件控制对象,在该对象里,有这两个外部函数的局部定义! 两个定义是冲突的,并且该文件对象不能随便改动,因此,我不得不把实现方式改变,将这两个函数在我新建立的对象中重新定义成本地外部函数引用。

大图片读写,这是我第三次写这个内容的代码了,还是写了N久的时间。以上这几个错误,让我一个明明可以在半小时写完的代码,写了5个小时,重启机器3回、DEBUG的时候,报告系统错误而中断了N次,这个郁闷啊。。。。。这些错误都是不应该发生的。

所以,作为一个程序员,在头脑不清楚的时候写代码,不是赶工作,而是耽误工作!千万别忘记休息,休息大脑是提高工作效率,加快工作进度的最有效方法!

[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7534032/viewspace-915153/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/7534032/viewspace-915153/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值