我很遗憾,做软件做了这么多年,思想还是停留在代码层次上,从来没有去提高自己。
近期的代码维护工作中碰到的问题,记录。
一条导致程序崩溃的代码:unsigned long lFeedbacktype_id;
语句本身没有问题,关键是它出现在哪。昨天开始,A系统的C后台程序忽然崩溃,怎么也启动不了,错误提示是:SQL Error! SQLSTATE = 07006 Native err = 0 msg = [Oracle][ODBC]Restricted data type attribute violation.百思不得其解,过去好好的怎么今天忽然不行了,后来尝试了删除所有相关表中的数据,程序正常了,插入了今天的数据,还是出错,导出数据查看,似乎看不出异常。试验了一下,发现如果把其中两个值为-1的字段改为0,程序就正常了。查看对应的DTL类,发现这些出错的字段都是unsigned long类型的,按说unsigned long和long是同样长度的,用哪个都不会出错,肯定是DTL库的内部对绑定的类型做了很严格的处理,如果声明的类型和数据库中的值不符合则会抛出异阅读全文>
发表于 @ 2008年10月24日 10:44:00|评论(loading...)|编辑|举报|收藏