作者:BY
www.gudianxiaoshuo.com
本文由 代码助手软件 整理发布 内容与本软件无关
更惬意的读、更舒心的写、更轻松的发布
秀色书文软件 可听、可读、可写、可知识发掘、可标注,再加上史上最强大的纯文本配色功能, 瞬间使您的书文秀色起来。
insert into 语句总是出现 未指定毛病
CString strCmd;
strCmd.Format(_T("insert into Keshi values(%d,"%s")"),
nKeshi,
keshiName
);
缘由,用ACCESS 生成的数据库, 制作表时 有1个默许的字段 保存自动ID的,将其删除掉便可
//没有此学生的话 则插入学生记录
strCmd.Format(
_T("insert into 班级表%d(学号,姓名,地址,联系方式,备注) values(%d,"%s","%s","%s","%s")"),
m_pParentStudentInfo->m_nClassID,
nXuehao,
nameStr,
addStr,
lianxiStr,
beizhuStr);
spCmd->CommandText=(LPCTSTR)strCmd;
spCmd->Execute(NULL,NULL,adCmdText);
_CommandPtr spCmd;
spCmd.CreateInstance(__uuidof(Command));
spCmd->ActiveConnection=m_pConnection;
//肯定是不是已有此学生
CString strCmd;
strCmd.Format(
_T("select count(*) from 班级表%d where 学号=%d"),
m_pParentStudentInfo->m_nClassID,
nXuehao);
_RecordsetPtr pRecordSet;
long count=0;
spCmd->CommandText=(LPCTSTR)strCmd;
pRecordSet=spCmd->Execute(NULL,NULL,adCmdText);
count=(long)pRecordSet->GetCollect ((long)0);
if (count>0)
{
AfxMessageBox (L"已存在此学号,请输入下1个学生的学号");
return FALSE;
}
//打开此学生的记录集
// +----------------------------------------------
pRecordSet.CreateInstance(__uuidof(Recordset));
strCmd.Format(
_T("SELECT * FROM 班级表%d order by 学号 "),
m_pParentStudentInfo->m_nClassID);
pRecordSet->Open((_variant_t)strCmd,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
pRecordSet->AddNew();
pRecordSet->PutCollect(_T("学号"),(long)nXuehao);
pRecordSet->PutCollect(_T("姓名"),(LPCTSTR)nameStr);
pRecordSet->PutCollect(_T("性别"),(LPCTSTR)sexStr);
pRecordSet->PutCollect(_T("地址"),(LPCTSTR)addStr);
pRecordSet->PutCollect(_T("联系方式"),(LPCTSTR)lianxiStr);
pRecordSet->PutCollect(_T("备注"),(LPCTSTR)beizhuStr);
pRecordSet->Update();
批量插入记录 到所有受影响的表中
//为指定学期的课堂成绩表 增加学生
BOOL CStuLianxi::AddXueqiStudent(const int nXueqi,const int nXuehao,const CString &nameStr)
{
_CommandPtr spCmd;
spCmd.CreateInstance(__uuidof(Command));
spCmd->ActiveConnection=m_pConnection;
CString strCmd;
_RecordsetPtr pRecordSet;
long count=0;
try{
strCmd.Format(
_T("select count(*) from 课堂成绩表%d where 学号=%d"),
nXueqi,
nXuehao);
spCmd->CommandText=(LPCTSTR)strCmd;
pRecordSet=spCmd->Execute(NULL,NULL,adCmdText);
count=(long)pRecordSet->GetCollect ((long)0);
if (count>0)
{ //以存在此学号
return TRUE;
}
//将此学生插入课堂成绩表中
strCmd.Format(
_T("insert into 课堂成绩表%d(学号,姓名,优秀,良,1般,旷课,主动加分) values(%d,"%s",0,0,0,0,0)"),
nXueqi,
nXuehao,
nameStr);
spCmd->CommandText=(LPCTSTR)strCmd;
spCmd->Execute(NULL,NULL,adCmdText);
}
catch(_com_error &e)
{
AfxMessageBox(e.Error ());
return FALSE;
}
return TRUE;
}
//为所有受影响的学生表中 添加学生
BOOL CStuLianxi::AddAllaffectedXueqiStudent(const int nXuehao,const CString &nameStr)
{
try{
CString strCmd;
_RecordsetPtr pRecordSet;
pRecordSet.CreateInstance(__uuidof(Recordset));
int nXueqiID=0;
//更新本班所有相干的课堂成绩表
//查找本班所有学期
strCmd.Format(
_T("SELECT * FROM ClassInfo where 班级ID=%d"),
m_pParentStudentInfo->m_nClassID);
pRecordSet->Open ((LPCTSTR)strCmd,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
if (!pRecordSet->adoBOF)
{
pRecordSet->MoveFirst ();
}else
return FALSE;
//更新本班所有学期
_variant_t varValue;
while (!pRecordSet->adoEOF)
{
varValue=pRecordSet->GetCollect (_T("ID"));
if (varValue.vt!=VT_NULL)
{
nXueqiID=_ttoi((LPCTSTR)_bstr_t(varValue));
AddXueqiStudent(nXueqiID,nXuehao,nameStr);
}else{
pRecordSet->MoveNext ();
continue;
}
pRecordSet->MoveNext ();
}
}
catch(_com_error &e)
{
AfxMessageBox(e.ErrorMessage());
}
return TRUE;
}