命令"添加一列", 我们可以发现数据库中刚才添加的表 new 中 已添加了一个新列。 第十一步:添加菜单项"删除一列",并添加相应的消息处理函数,然后添加代码如下:
void CTestadoView::OnDelColumn() { _variant_t RecordsAffected; m_pConnection->Execute("ALTER TABLE new DROP newcolumn1 INTEGER",&;RecordsAffected,adCmdText); } 运行程序, 执行菜单当中的命令"删除一列", 我们可以发现数据库中刚才添加的表 new 中 的新列已被删除。 第十二步:添加菜单项"添加记录",并添加相应的消息处理函数,然后添加代码如下: void CTestadoView::OnAddRecord() { _variant_t RecordsAffected; for(int i = 1;i < 10; i ++) { CString strSQL; strSQL.Format("INSERT INTO new(ID,username,old) VALUES (%d, 'Washington',%d)",i,i*9); m_pConnection->Execute((_bstr_t)strSQL,&;RecordsAffected,adCmdText); } 运行
程序, 执行菜单当中的命令"添加记录", 我们可以发现数据库中刚才添加的表 new 中 添加了九条新的记录。 第十三步:添加菜单项"old 字段加 1",并添加相应的消息处理函数,然后添加代码如下: void CTestadoView::OnOldAddone() { _variant_t RecordsAffected; m_pConnection->Execute("UPDATE new SET ld= old+1",&;RecordsAffected,adCmdText); } 运行程序, 执行菜单当中的命令"old 记录加 1", 我们可以发现数据库中刚才添加的表 new 中的九条新的记录的 old 字段都自动加 1。 第十四步:添加菜单项"统计记录数目",并添加相应的消息处理函数,然后添加代码如下: void CTestadoView::OnTotalRecords() { _RecordsetPtr m_pRecordset; _variant_t RecordsAffected; m_pRecordset =m_pConnection->Execute("SELECT COUNT(*) FROM new where ID > 0",&;RecordsAffected,adCmdText); _variant_t vIndex = (long)0; _variant_t vCount = m_pRecordset->GetCollect(vIndex); ///取得第一个字段的值放入 vCount 变量 m_pRecordset->Close();///关闭记录集 CString Message;
Message.Format("共有%d 条记录",vCount.lVal); AfxMessageBox(Message);///显示当前记录条数 } 运行程序,执行菜单当中的命令"统计记录数目",我们可以得到数据库
中记录的数目。 第十五步:添加菜单项"设置 ID 为索引",并添加相应的消息处理函数,然后添加代码如 下: void CTestadoView::OnSetIdIndex() { _variant_t RecordsAffected; m_pConnection->Execute("CREATE UNIQUE INDEX id ON new(ID)",&;RecordsAffected,adCmdText); } 运行程序,执行菜单当中的命令"设置 ID 为索引",我们可以发现数据库中 ID 被设置为索 引。 第十六步:添加菜单项"数据汇总"、"old 字段的总和"、"old 字段的均值"、"old 的最小值 "、"old 字段的最大值",并添加相应的消息处理函数,然后添加代码如下: void CTestadoView::OnOldMax() { _RecordsetPtr m_pRecordset; _variant_t RecordsAffected; m_pRecordset =m_pConnection->Execute("select MAX(old) from new",&;RecordsAffected,adCmdText); _variant_t vIndex = (long)0; _variant_t vCount = m_pRecordset->GetCollect(vIndex); ///取得第一个字段的值放入 vCount 变量 m_pRecordset->Close();///关闭记录集 m_pRecordset.Release(); CString Message; Message.Format("最大值是%d",vCount.lVal); AfxMessageBox(Message); } void CTestadoView::OnOldMin() { _RecordsetPtr m_pRecordset; _variant_t RecordsAffected; m_pRecordset =m_pConnection->Execute("select MIN(old) from new",&;RecordsAffected,adCmdText); _variant_t vIndex = (long)0; _variant_t vCount = m_pRecordset->GetCollect(vIndex); ///取得第一个字段的值放入 vCount 变量 m_pRecordset