一个教训关于CDaoRecordSet::Open()
2007-05-19 19:05
375 查看
我写了一个按钮的代码,本意是要生成一个.mdb数据文件,遇到了错误,开始怀疑是参数问题,后来,偶然发现rs,即
cdaorecordset对象没有一个open操作,而直接做rs.addnew(),于是出错!
教训深刻.
记之,以提醒自己.
// 使用CDaoDatabase
//什么时候使用CDaoDatabase,用来产生mdb文件
AfxGetModuleState()->m_dwVersion = 0x0601;
pDatabase.Create("newdb.mdb",dbLangGeneral,0x40);
// ---------------------------------------------------------
CDaoTableDef pTable(&pDatabase);
//一个基本问题的疑问?dao对象之间如何关联起来?在声明变量的时候或者之后?
//定义CDaoTableDef类的方法警告,为什么不可以用下面的方法呢?
// pTable.m_pDatabase = &pDatabase;
// CDaoTableDef 类的create()得到的是什么?
// 建立数据库中的一个新的表
pTable.Create(_T("data"));
// Create if just now , maybe can not open again.
// pTable.Open("data");
// 这里不需要open()
pTable.CreateField("Y",dbInteger,10,0);
// pTable.CreateField("N",dbInteger,10,0);
pTable.Append();
pTable.Close();
//使用CDaoRecordSet
CDaoRSet rs(&pDatabase);
//这里的open()一直处于缺少的状态,教训所在!!!
rs.Open(dbOpenDynaset, _T("Select * from data"));
//--------------------------------------------------------------------
rs.AddNew();
// ??????????????????????????????????????????????????????????????????????????????????
// ??????????????????????????????????????????????????????????????????????????????????
// ??????????????????????????????????????????????????????????????????????????????????
// 为什么不可以使用rs.addnew(),而要出错呢?需要什么前提条件呢?
// rs.open()
// ??????????????????????????????????????????????????????????????????????????????????
// ??????????????????????????????????????????????????????????????????????????????????
// ??????????????????????????????????????????????????????????????????????????????????
rs.Update();
rs.AddNew();
rs.Update();
rs.Close();
pDatabase.Close();
pDatabase.m_pWorkspace->Close();
cdaorecordset对象没有一个open操作,而直接做rs.addnew(),于是出错!
教训深刻.
记之,以提醒自己.
// 使用CDaoDatabase
//什么时候使用CDaoDatabase,用来产生mdb文件
AfxGetModuleState()->m_dwVersion = 0x0601;
pDatabase.Create("newdb.mdb",dbLangGeneral,0x40);
// ---------------------------------------------------------
CDaoTableDef pTable(&pDatabase);
//一个基本问题的疑问?dao对象之间如何关联起来?在声明变量的时候或者之后?
//定义CDaoTableDef类的方法警告,为什么不可以用下面的方法呢?
// pTable.m_pDatabase = &pDatabase;
// CDaoTableDef 类的create()得到的是什么?
// 建立数据库中的一个新的表
pTable.Create(_T("data"));
// Create if just now , maybe can not open again.
// pTable.Open("data");
// 这里不需要open()
pTable.CreateField("Y",dbInteger,10,0);
// pTable.CreateField("N",dbInteger,10,0);
pTable.Append();
pTable.Close();
//使用CDaoRecordSet
CDaoRSet rs(&pDatabase);
//这里的open()一直处于缺少的状态,教训所在!!!
rs.Open(dbOpenDynaset, _T("Select * from data"));
//--------------------------------------------------------------------
rs.AddNew();
// ??????????????????????????????????????????????????????????????????????????????????
// ??????????????????????????????????????????????????????????????????????????????????
// ??????????????????????????????????????????????????????????????????????????????????
// 为什么不可以使用rs.addnew(),而要出错呢?需要什么前提条件呢?
// rs.open()
// ??????????????????????????????????????????????????????????????????????????????????
// ??????????????????????????????????????????????????????????????????????????????????
// ??????????????????????????????????????????????????????????????????????????????????
rs.Update();
rs.AddNew();
rs.Update();
rs.Close();
pDatabase.Close();
pDatabase.m_pWorkspace->Close();
相关文章推荐
- 一个错误,一个教训,关于堆栈平衡
- 一个项目的经验教训:关于打乱和拆分数据
- 一个项目的经验教训:关于打乱和拆分数据
- Openh323和Windows平台上关于G.723.1编码需要注意的一个问题
- 2015年11月20 关于百度地图导航初始化失败的一个教训
- 一个项目的经验教训:关于打乱和拆分数据
- 一个项目的经验教训:关于打乱和拆分数据
- 一个项目的经验教训:关于打乱和拆分数据
- .net中关于windows身份验证的一个教训[原创]
- 一个关于js的教训
- 流泪总结一个关于Content-Disposition的教训
- 关于写文件的一个教训
- 关于C++内存泄漏的一个经验教训
- 一个项目的经验教训:关于打乱和拆分数据
- 关于使用mybatis的一个惨痛教训
- 【分享教训】关于一个字母价值2000块钱的深刻教训20150120
- 一个项目的经验教训:关于打乱和拆分数据
- 一个关于rm -rf 的教训
- 关于eclipse open call hierarchy功能的一个细节
- 一个项目的经验教训:关于打乱和拆分数据