最近为一个VB的程序增加查询功能,采用SQL语句,数据库是Access。
测试时用了非常简单的查询,就是单表单条件,结果提示内存溢出。
为了解决问题,我用Access打开数据表,发现记录不到万条,而且执行测试的SQL,也没有提示内存溢出。看起来SQL语句是没有问题的,数据量也不大,为什么会内存溢出呢?
因为以前没有遇到过这种问题,所以查找起来还是有些没有头绪。
首先我改变了SQL语句,用了count(*)这样的聚合语句,结果还是内存溢出。
没办法,我只得改变查询条件,将一个查询条件扩展到两个查询条件,结果奇迹发生了:查询成功。
于是,我改变查询条件的范围,不断尝试,最终锁定了内存溢出与某条记录有关。
仔细检查这条记录的内容,原来是其中出现了乱码:“€淘鹣挛缛ナ烙牖弁パ湮俊?”,将记录中的乱码删除后,内存溢出的情况就不再出现了。