数中要释放该指针delete loc_pDataBase;
---- 三、在自定义的类中加入所需的函数和变量
---- 手工加入函数包括两项工作,首先在头文件中加入函数的声明,然后,在实现文件中加入函数的具体实现,声明与实现一定要统一;
---- 使用向导加入函数和变量:
---- 1、在Workspace窗口选择ClassView选项卡;
---- 2、在树型类结构图的要添加函数和变量的类上单击鼠标右键,如果加入成员函数则单击Add Member Function,加入虚函数单击Add Virtual Function,加入成员变量单击 Add Member Variable;
---- 3、出现对话框后,填写成员函数或变量的名称、类型,系统会自动添加函数的声明与实现;
---- 4、添加函数的具体操作,可以通过编辑代码进一步填写;
---- 这些操作将会在Workspace窗口的ClassView选项中立即体现出来,并且,单击ClassView中的相应函数就可进入该函数的实现部分,进行进一步编写代码,如果做不到这一点,说明添加成员函数的操作有误。
---- 下面以本应用
程序为例,给出具体的表结构和几个主要函数的实现,读者可以根据自己的实际情况设计函数。
---- 本应用
程序中的一个典型表的结构是:
序号 正题内容 难度系数 分值
答案 备注
整型 字符型 长整型 双精度 字符型 字符型
---- 打开数据库的函数实现如下:
if (!loc_pDataBase->IsOpen())
loc_pDataBase->Open( NULL, FALSE,
FALSE, SQL_DATABASE);
---- 该函数中用到了CdaoDatabase类的两个函数IsOpen()和Open(NULL, FALSE, FALSE, SQL_DATABASE),因为已经声明了该类的指针对象loc_pDataBase,所以可以直接调用CdaoDatabase类的函数。其中,Open()函数中的最后一个参数SQL_DATABASE在前面已经介绍过,通过他打开相关的数据库。
---- 由于
程序中打开表后,不仅要返回所有的记录集,还用到返回满足一定条件的记录集,因此打开表的函数除了带入表名外还有一个参数难度系数,lNDXS=0时,选择表中全部数据, lNDXS=1~n时,表示选择难度系数=1~n的记录。
bool CDataBaseOperate::OpenTable
(CString strTableName,long lNDXS)
{
CString strFieldNumber;
loc_pTable=new CdaoTableDef
(loc_pDataBase);
if (!loc_pTable->IsOpen())
loc_pTable->Open(strTableName);
//打开指定的表名
strFieldNumber.Format("%d",loc_pTable- >
GetFieldCount()); //得到字段数
CString Sqlstr,Sqlstr1,Sqlstr2;
loc_pQueryDef=new CDaoQueryDef(loc_pDataBase);
//得到
查询集和记录集
if (lNDXS==0)
{
Sqlstr=_T("SELECT * FROM "+strTableName);
}
else
{ Sqlstr1="SELECT * FROM "+strTableName ;
Sqlstr2.Format("WHERE 难度系数= %d",lNDXS);
Sqlstr=_T(Sqlstr1+Sqlstr2);
}
loc_pQueryDef->Create(NULL,Sqlstr);
loc_pRecordset.Open(loc_pQueryDef);
m_nRecordNumber=0;
while(!loc_pRecordset.IsEOF())
&nb