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

作者:BY  www.gudianxiaoshuo.com

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

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

      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;
}
时间: 2024-12-26 16:29:13

insert into 语句总是出现 未指定错误的相关文章

mysql执行insert等语句报1205 Lock wait timeout exceeded try restarting transaction

mysql执行insert等语句是报如下错误: 1205 Lock wait timeout exceeded try restarting transaction 解决办法如下: 方法一:查看当前线程,是否有存在正在执行的你相关的语句,将其KILL  show processlist;  kill pid 方法二(方法一不行再执行):重启mysql数据库  service mysqld restart 注意:重启mysql会将在执行的线程全部kill

ACCESS的System.Data.OleDb.OleDbException: INSERT INTO 语句的语法错误

一直用的是SQL 数据库,突然改用Access了,使用起来就是没有SQL 顺畅,老是出来些意想不到的错误.今天用Access做的网站程序进行添加数据,调试了一下午,总是异常…… 提示ACCESS的System.Data.OleDb.OleDbException: INSERT INTO 语句的语法错误,刚才才在网络上找到了解决的方法,觉得有点不可思议~~在网络上看了看,也是学习ADO.net的人常犯的错误.所以写此日志,以提醒自己 /// <summary> /// 增加一条数据 /// &l

Insert Into 语句的语法错误

错误示意: 一开始程序是: 改正: 一条很简单的插入语句竟然会报错,然而直接在数据库的查询中执行中却没有问题,这个问题困扰了不少时间. 数据库使用的是ACCESS,INSERT INTO语句为insert into userInfo(user, pwd) values('test','test') 一般可能列名发生关键字冲突,于是给user, pwd加了[],即insert into userInfo([user], [pwd]) values('test','test'),就正常了. 原文地址

C#使用oledb连接excel执行Insert Into语句出现“操作必须使用一个可更新的查询”的解决办法

我发生错误时的环境:Windows 7,Framework 4.0,Microsoft Office 2007,VS2010,c# WinForm: 部分代码: string strConn = "Provider=Microsoft.Ace.OleDb.12.0;Persist Security Info=False;" + "data source=" + @excelPath + ";Extended Properties='Excel 12.0;

关于INSERT EXEC 语句不能嵌套的解决办法

一.问题  之前做项目的时候遇到过要在一个存储过程要操作另一个存储过程返回的结果集,想通过调用的存储过程保存到局部临时表进行操作.执行下面的sql,会提示: 消息 8164,级别 16,状态 1,过程 zryCreatePlantPlanningReport,第 27 行 INSERT EXEC 语句不能嵌套. 1 DROP TABLE #demo 2 CREATE TABLE #demo 3 ( 4 ZK_PLANNING_ID NVARCHAR(50), 5 ZK_PLAN_TITLE NV

Sqlserver 导出insert插入语句

SQLserver,确有些难度,自带的工具都无法完成这个操作.经过查证资料可以通过写一个存储过程来完成这个操作. 存储过程如下: SET QUOTED_IDENTIFIER OFF GO SET ANSI_NULLS ON GO if exists(select 1 from sysobjects where id=object_id('BicashyOutputData') and xtype='P') drop procedure BicashyOutputData; GO create p

vertica从其他表迁移数据到新表(insert into 语句用法实例)

前面一篇开始学习solr的时候,做了个入门的示例http://blog.csdn.net/zjc/article/details/24414271 .虽然可以检索出内容,但总和想象的结果有差异--比如,检索"天龙"两个字,按常规理解,就应该只出来<天龙八部>才对,可是竟然也会把<倚天屠龙记>检出来.后来研究了一下,发现系统是这样处理的:无论是抽索引时还是分析检索词时,都把所有文字按单字拆开.这样,刚好<倚天屠龙记>里包含"天"和&

SQL INSERT INTO 语句

INSERT INTO 语句 INSERT INTO 语句用于向表格中插入新的行. 语法 INSERT INTO 表名称 VALUES (值1, 值2,....) 我们也可以指定所要插入数据的列: INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....) 插入新的行 "Persons" 表: LastName FirstName Address City Carter Thomas Changan Street Beijing S

8.INSERT INTO 语句 UPDATE 语句

1. INSERT INTO 语句 INSERT INTO 语句用于向表格中插入新的行. 语法 INSERT INTO 表名称 VALUES (值1, 值2,....) INSERT INTO Persons VALUES ('Gates', 'Bill', 'Xuanwumen 10', 'Beijing') 我们也可以指定所要插入数据的列: INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....) INSERT INTO Persons