本文由 代码助手软件 整理发布 内容与本软件无关
更惬意的读、更舒心的写、更轻松的发布
_CommandPtr spCmd; //定义CommandPtr变量 _RecordsetPtr pRecordSet; //定义记录集 long count=0; spCmd.CreateInstance(__uuidof(Command)); //创建Command实例 spCmd->ActiveConnection=m_pConnection; //将Command与数据库关联 spCmd->CommandText=(LPCTSTR)strCmd; //strCmd命令 pRecordSet=spCmd->Execute(NULL,NULL,adCmdText); //执行Command命令后返回的结果集
实例一 创建表:
strCmd.Format( _T("create table 课堂成绩表%d(学号 INTEGER NOT NULL PRIMARY KEY,姓名 TEXT,优秀 INTEGER,良 INTEGER,一般 INTEGER,旷课 INTEGER,主动加分 INTEGER)"), m_pParentStudentInfo->m_nXueqiID); spCmd->CommandText=(LPCTSTR)strCmd; spCmd->Execute(NULL,NULL,adCmdText); //为成绩表添加学号为0 的学生 用姓名项 记录总的点名次数 strCmd.Format( _T("Insert into 课堂成绩表%d(学号,姓名) values(0,0)"), m_pParentStudentInfo->m_nXueqiID); spCmd->CommandText=(LPCTSTR)strCmd; spCmd->Execute(NULL,NULL,adCmdText);
void CKemuPage::CreateTable(int nID) { //创KeshiID、ZhishidianID、WentiID表 try{ _CommandPtr spCmd; _RecordsetPtr pRecordSet; spCmd.CreateInstance(__uuidof(Command)); spCmd->ActiveConnection=m_pConnectionPtr; CString strCmd; //创建keshiID strCmd.Format( _T("create table Keshi%d(课时 INTEGER NOT NULL PRIMARY KEY,题目 TEXT(100))"), nID); spCmd->CommandText=(LPCTSTR)strCmd; spCmd->Execute(NULL,NULL,adCmdText); //创建ZhishidianID strCmd.Format( _T("create table Zhishidian%d(ID AUTOINCREMENT(1,1) PRIMARY KEY,课时 INTEGER,知识点ID INTEGER,知识点 Memo,重点 Bit,难点 Bit)"), nID); spCmd->CommandText=(LPCTSTR)strCmd; spCmd->Execute(NULL,NULL,adCmdText); //创建WentiID strCmd.Format( _T("create table Wenti%d(ID AUTOINCREMENT(1,1) PRIMARY KEY,课时ID INTEGER,知识点ID INTEGER,问题ID INTEGER,问题 Memo,答案 Memo)"), nID); spCmd->CommandText=(LPCTSTR)strCmd; spCmd->Execute(NULL,NULL,adCmdText); }catch(_com_error &e) { MessageBox(e.ErrorMessage()); } }
//创建班级信息表----班级表 strCmd.Format( _T("create table 班级表%d(学号 INTEGER NOT NULL PRIMARY KEY,姓名 TEXT(20),性别 TEXT(2),地址 TEXT(100),联系方式 TEXT(100),备注 TEXT(200),照片 Image)"), iClassID); spCmd->CommandText=(LPCTSTR)strCmd; spCmd->Execute(NULL,NULL,adCmdText); //创建成绩表-----ID课程成绩表 strCmd.Format( _T("create table 课堂成绩表%d(学号 INTEGER NOT NULL PRIMARY KEY,姓名 TEXT(20),优秀 INTEGER,良 INTEGER,一般 INTEGER,旷课 INTEGER,主动加分 INTEGER)"), iClassID); spCmd->CommandText=(LPCTSTR)strCmd; spCmd->Execute(NULL,NULL,adCmdText); //为成绩表添加学号为0 的学生 用姓名项 记录总的点名次数 strCmd.Format( _T("Insert into 课堂成绩表%d(学号,姓名) values(0,0)"), iClassID); spCmd->CommandText=(LPCTSTR)strCmd; spCmd->Execute(NULL,NULL,adCmdText);
Access创建表的同时 给字段添加默认项,否则查找时可能找不到预期结果
//创建成绩表-----ID课程成绩表 strCmd.Format( _T("create table 课堂成绩表%d(学号 INTEGER NOT NULL PRIMARY KEY,姓名 TEXT(20),优秀 INTEGER DEFAULT 0 NOT NULL,良 INTEGER DEFAULT 0 NOT NULL,一般 INTEGER DEFAULT 0 NOT NULL,旷课 INTEGER DEFAULT 0 NOT NULL,主动加分 INTEGER DEFAULT 0 NOT NULL)"), iClassID); spCmd->CommandText=(LPCTSTR)strCmd; spCmd->Execute(NULL,NULL,adCmdText);
实例二: 选择表中的记录
strCmd.Format( _T("select * from 班级表%d"), m_pParentStudentInfo->m_nClassID); spCmd->CommandText=(LPCTSTR)strCmd; pRecordSet=spCmd->Execute (NULL,NULL,adCmdText); int nXuehao=0; CString nameStr; _variant_t varValue; while (!pRecordSet->adoEOF) { varValue=pRecordSet->GetCollect(_T("学号")); if (varValue.vt!=NULL) { nXuehao=_ttoi((LPCTSTR)_bstr_t(varValue)); }else continue; varValue=pRecordSet->GetCollect (_T("姓名")); if (varValue.vt!=NULL) { nameStr=(LPCTSTR)_bstr_t(varValue); } strCmd.Format( _T("Insert into 课堂成绩表%d(学号,姓名) values(%d,\"%s\")"), m_pParentStudentInfo->m_nXueqiID, nXuehao, nameStr); spCmd->CommandText=(LPCTSTR)strCmd; spCmd->Execute(NULL,NULL,adCmdText); pRecordSet->MoveNext (); }
实例三 更新表
strCmd.Format(_T("update classInfo set 班级ID=%d where ID=%d"), m_pParentStudentInfo->m_nClassID, m_pParentStudentInfo->m_nXueqiID); spCmd->CommandText=(LPCTSTR)strCmd; spCmd->Execute(NULL,NULL,adCmdText);
实例四:查找排序最高的
strCmd.Format(_T("select top 1 * from ClassInfo order by ID desc")); pRecordSet=NULL; spCmd->CommandText=(LPCTSTR)strCmd; pRecordSet=spCmd->Execute(NULL,NULL,adCmdText); _variant_t vID; int iClassID=0; ASSERT(pRecordSet!=NULL); vID=pRecordSet->GetCollect ("ID"); //获得新插入班级的ID ASSERT (vID.vt!=NULL); m_pParentStudentInfo->m_nXueqiID=_ttoi((LPCTSTR)(_bstr_t(vID)));
实例五 插入
//没有同样学期的话,则将其插入 strCmd.Format( _T("insert into ClassInfo(入学年,班级,学期,班级ID) values(%d,\"%s\",\"%s\",%d)"), _ttoi(ruxuenianStr), banjiStr, xueqiStr, m_pParentStudentInfo->m_nClassID); spCmd.CreateInstance(__uuidof(Command)); spCmd->ActiveConnection=m_pConnection; spCmd->CommandText=(LPCTSTR)strCmd; spCmd->Execute(NULL,NULL,adCmdText);
实例六 确定是否有相同的
//确定是否已有同样的学期 CString strCmd; strCmd.Format( _T("select count(*) from ClassInfo where 入学年=%d and 班级=\"%s\" and 学期=\"%s\""), _ttoi(ruxuenianStr), banjiStr, xueqiStr); _CommandPtr spCmd; _RecordsetPtr pRecordSet; long count=0; spCmd.CreateInstance(__uuidof(Command)); spCmd->ActiveConnection=m_pConnection; spCmd->CommandText=(LPCTSTR)strCmd; pRecordSet=spCmd->Execute(NULL,NULL,adCmdText); count=(long)pRecordSet->GetCollect ((long)0); if (count>0) { AfxMessageBox (L"已经存在此学期,新从新设计新学期的名字"); return; }
时间: 2024-10-07 22:31:45