1.使用ODBC连接数据库,CRecordset类需要什么样的头文件
将#include <afxdb.h>放到StdAfx.h中。不然每个CRecordSet类都得包含一次
2. 'theApp' : undeclared identifier解决方法
在你要访问的地方的.cpp 文件中加入 extern CXXXApp theApp;
本程序加入的为:extern CLhwyApp theApp;
3.'m_DB' : is not a member of 'CLhwyApp'解决方法
在lhwy.h中加入
public: CDatabase m_DB;
4.ODBC用到的一些知识
连接数据表
CDRecordset m_Set(&theApp.m_DB);// &theApp.m_DB为CDatabase类型 CBRecordset m_bSet(&theApp.m_DB);
CTRecordset m_tSet(&theApp.m_DB);
CRecordset类数据成员
m_nFields:记录集中的字段数目,类型为UINT.
m_strFilter: CString对象,包含一个SOL的WHERE字句,作为过滤器对那些满足一定条件的记录进行选择。
m_strSort: CString对象,包含一个SOL的ORDER BY字句,用于控制记录排序的方式。
GetODBCFieldInfo------返回记录集中字段的特定种类的信息。
记录导向操作
MoveFirst------设置记录集的当前记录为第一个记录,此前应调用IsBOF测试。 记录更新操作
Edit-------准备对当前记录的更改,编辑,调用Update()完成编辑。
AddNew----准备增加一个新记录,调用Update()完成。
Delete------从记录中删除当前记录,在删除之后必须滚动到下一个记录。
操作应用:
打开数据表:m_Set.Open(AFX_DB_USE_DEFAULT_TYPE,"[NO2STUDENT]");// [NO2STUDENT为数据表名
5.向ListCtrl控件添加行的信息
i =0;
CString s;
m_ListCtrlb.InsertItem(i,m_bSet.m_column1,0);
s.Format("%.1f",m_bSet.m_column2);
m_ListCtrlb.SetItemText(i,1,s);
s.Format("%.2f",m_bSet.m_column3);
m_ListCtrlb.SetItemText(i,2,s);
s.Format("%d",m_bSet.m_column4);
m_ListCtrlb.SetItemText(i,3,s);
s.Format("%d",m_bSet.m_column5);
m_ListCtrlb.SetItemText(i,4,s);