加了sprintf("%s",strSQL); 并设中断; 打印如下 strSQL {"INSERT INTO 电流(序列号,时间,电流值) VALUES(1, '2008 April 08, Tuesday, 11:09:45:906' ,34.456000)"}数据传递没有错误,可就是还没写进去
将这个值在access中执行呢? 是不是主键冲突了 捕捉_com_error异常看报什么错
先不要三个字段都插..一个一个字段插试试看...:{"INSERT INTO 电流(序列号) VALUES(1)"} {"INSERT INTO 电流(时间) VALUES('2008 April 08, Tuesday, 11:09:45:906')"} {"INSERT INTO 电流(电流值) VALUES(34.456000)"}
strSQL.Format( "INSERT INTO 电流(序列号,时间,电流值) VALUES(\'%s\', \'%s\' ,\'%s\')" , strID,strCurrentTime,strCurVal);
改成:
strSQL.Format( "INSERT INTO 电流(序列号,时间,电流值) VALUES(%d, '%s' ,%f)" , nID,strCurrentTime,fCurVal);再不行的话,用_variant_t变量插..
并设中断;
打印如下
strSQL {"INSERT INTO 电流(序列号,时间,电流值) VALUES(1, '2008 April 08, Tuesday, 11:09:45:906' ,34.456000)"}数据传递没有错误,可就是还没写进去
是不是主键冲突了
捕捉_com_error异常看报什么错
{"INSERT INTO 电流(时间) VALUES('2008 April 08, Tuesday, 11:09:45:906')"}
{"INSERT INTO 电流(电流值) VALUES(34.456000)"}
楼主提供的信息太少,这样无法确定什么问题。
不过,可以这样来解决问题:1、先把数据库端搞定;2、再解决VC++程序端的问题。=======数据库端:1、首先确认一下这个表有没有主键、唯一索引等数据完整性限制?2、字段名改为英文=======VC++程序端:1、调试查看生成的 SQL 语句是否正确?2、捕获异常,查看返回错误。=======另外,你说数据没有写进去,那还有其它什么症状?是否有错误对话框弹出?程序是否立即退出?
strSQL {"INSERT INTO 电流(序列号,时间,电流值) VALUES(1, '2008 April 08, Tuesday, 11:09:45:906' ,34.456000)"} 这条语句在Access中运行一下,如果失败会有具体的错误信息。