首页 > 代码库 > insert into 语句总是出现 未指定错误

insert into 语句总是出现 未指定错误

作者:BY  www.gudianxiaoshuo.com


本文由 代码助手软件 整理发布 内容与本软件无关更惬意的读、更舒心的写、更轻松的发布

 秀色书文软件  可听、可读、可写、可知识挖掘、可标注,再加上史上最强大的纯文本配色功能, 瞬间使您的书文秀色起来。










insert into 语句总是出现 未指定错误

      CString strCmd;
     strCmd.Format(_T("insert into Keshi values(%d,\"%s\")"),
         nKeshi,
         keshiName
         );

原因,用ACCESS 生成的数据库, 制作表时 有一个默认的字段 保存自动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"已经存在此学号,请输入下一个学生的学号");
            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(学号,姓名,优秀,良,一般,旷课,主动加分)  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;
}


insert into 语句总是出现 未指定错误