VALUES(%s, \'%s\' ,%s)
序列号 INTEGER
电流值 FLOAT
数字类型不要加单引号

解决方案 »

  1.   

    把单引号去掉~ 插入数字为什么还要加单引号??
    strSQL.Format( "INSERT INTO 电流(序列号,时间,电流值) VALUES(\'%s\', \'%s\' ,\'%s\')" , strID,strCurrentTime,strCurVal);
    改成:
    strSQL.Format( "INSERT INTO 电流(序列号,时间,电流值) VALUES(%d, '%s' ,%f)" , nID,strCurrentTime,fCurVal);再不行的话,用_variant_t变量插..
      

  2.   

    加了sprintf("%s",strSQL);
    并设中断;
    打印如下
    strSQL {"INSERT INTO 电流(序列号,时间,电流值) VALUES(1, '2008 April 08, Tuesday, 11:09:45:906' ,34.456000)"}数据传递没有错误,可就是还没写进去
      

  3.   

    将这个值在access中执行呢?
    是不是主键冲突了
    捕捉_com_error异常看报什么错
      

  4.   

    先不要三个字段都插..一个一个字段插试试看...:{"INSERT INTO 电流(序列号) VALUES(1)"} 
    {"INSERT INTO 电流(时间) VALUES('2008 April 08, Tuesday, 11:09:45:906')"} 
    {"INSERT INTO 电流(电流值) VALUES(34.456000)"} 
      

  5.   


    楼主提供的信息太少,这样无法确定什么问题。
    不过,可以这样来解决问题:1、先把数据库端搞定;2、再解决VC++程序端的问题。=======数据库端:1、首先确认一下这个表有没有主键、唯一索引等数据完整性限制?2、字段名改为英文=======VC++程序端:1、调试查看生成的 SQL 语句是否正确?2、捕获异常,查看返回错误。=======另外,你说数据没有写进去,那还有其它什么症状?是否有错误对话框弹出?程序是否立即退出?
      

  6.   

    将你的
    strSQL {"INSERT INTO 电流(序列号,时间,电流值) VALUES(1, '2008 April 08, Tuesday, 11:09:45:906' ,34.456000)"} 这条语句在Access中运行一下,如果失败会有具体的错误信息。