重复启动关闭MDI程序的子窗口就会出现一个异常,然后就中断到:
inline _variant_t::_variant_t(IDispatch* pSrc, bool fAddRef) throw()
{
V_VT(this) = VT_DISPATCH;
V_DISPATCH(this) = pSrc;
// Need the AddRef() as VariantClear() calls Release(), unless fAddRef
// false indicates we're taking ownership
//
if (fAddRef) {
V_DISPATCH(this)->AddRef(); 《--------这一行。
}
}
并且fAddRef的value是1,开始还以为启动子FRMAE的时候哪地方没有释放或关闭,最后跟踪啊调试啊找问题啊,最后找到罪魁祸首的是我自己封装的数据库类,在构造函数中没有调用::CoInitialize(NULL);而在析构函数中却调用了::CoUninitialize() 难怪不得阅读全文>
发表于 @ 2006年01月17日 10:02:00|评论(loading...)|收藏
1.创建一个表的映射
创建一个类,如CUserSet让它继承于CRecordset,创建完后VC让选择ODBC中的库,然后指定表我们选择user表,这样这个类基本上就和表user进行了映射.一定要在UserSet.h加入#include 不然会出一堆没定义的错误。
2.新增一条记录
CUserSet userset;//创建一个类的对象
userset.Open(CRecordset::snapshot,"select * from user");
userset.AddNew();
userset.m_username = "月风"; //把你要新加的内容传给记录集类对应数据库的字段
userset.m_sex="男";
userset.Update();
userset.Close();
2.修改一条记录
CUserSet userset;//创建一个类的对象
CString strSql;
strSql.Format("select * from user where username='%s'",strUsername);/阅读全文>
发表于 @ 2006年01月15日 20:55:00|评论(loading...)|收藏