我的实验是这样的:运行以下程序时,用2000的任务管理器观察内存占用。1、打开CDaoDatabase——》打开CDaoQueryDef——》CDaoQueryDef.SetSql——》关闭CDaoQueryDef——》关闭CDaoDatabase.
按这种顺序多次调用,没有问题。2、打开CDaoDatabase——》“打开CDaoQueryDef——》CDaoQueryDef.SetSql——》关闭CDaoQueryDef”——》“打开CDaoQueryDef——》CDaoQueryDef.SetSql——》关闭CDaoQueryDef”——》关闭CDaoDatabase.按这种顺序,每多一次“打开CDaoQueryDef——》CDaoQueryDef.SetSql——》关闭CDaoQueryDef”,程序占用的内存也越多。
若在一次循环中将调用SetSql的次数增大,每次循环所消耗的内存也相应增加。
可以预见,随着以上循环的增多,系统内存可能被用光。大家用MFC的DAOVIEW例程可以观察到这种现象,在OnQueryEdit函数中,多复制几行qdEdit.SetSQL(dlgSQL.m_strSQL);每次对QueryDef“Edit"后,内存占用将不断增加。关于这个问题,各位若是知情,还请帮我解释一下~~~~~。谢谢