1 问题
这几天在学习如何使用access数据库,笔者菜鸟,使用的平台为vs2015。连接的方法网上一大打,成功连接数据库之后运行程序,发现了一个问题。随着程序的运行,不断查询数据库,==程序占用内存不断增加==,这样下去电脑迟早奔溃。
经过不断调试发现,当使用数据库连接对象m_pconnection执行查询语句时不断的会产生内存。
_RecordsetPtr m_pRecordset;
CString SQL_Excute1;
当使用sql查询语句(使用频率高)时。
用
m_pConnection->Execute(SQL_Excute1.AllocSysString(), 0, adCmdText);
会使程序产生大量的累积内存,(原因不明,前辈们懂的的话,望不吝赐教)。用
m_pRecordset->Open(sql.GetBuffer(),
_variant_t((IDispatch*)m_pConnection, true),
adOpenStatic,
adLockOptimistic,
adCmdText);
则不会产生额外内存。
2 更新与插入语句
更新与插入使用频率小,使用m_pConnection的excute语句即可。至于内存方面,使用频率远远小于查询频率基本可以忽略。
m_pConnection->Execute(SQL_Excute1.AllocSysString(), &RecordsAffected, adCmdText);