我把上位机和mysql连起来后,每20ms采集一次数据,程序调试没有错误,但是运行时采集几个数就会提示失败,并且也不是20ms,感觉变成1s了。
void Ca2Dlg::OnStart()
{
// TODO: 在此添加控件通知处理程序代码
RunTimeNumb = 0;
m_RunTime.Format("0");
CTime dt;
dt=CTime::GetCurrentTime();
UpdateData(0);
SetTimer(0,1000,NULL);
//SetTimer(1,1000,NULL);
SetTimer(2,20,NULL);
}
case 2:
AddDataToLists();
break;
void Ca2Dlg::AddDataToLists()
{
UpdateData(TRUE);
CString local_m_WheelSpeed = m_WheelSpeed.GetBuffer();
// 创建 MYSQL 对象。
MYSQL local_mysql;
// 初始化 MYSQL 对象。
mysql_init(&local_mysql);
// 连接数据库
if(!mysql_real_connect(&local_mysql,"localhost","root","root","test1",3306,NULL,0))
{
AfxMessageBox(_T("connect to database failed!"));
}
else
{
//AfxMessageBox(_T("connect to database success!"));
// 设置字符集, 使程序支持中文。 设置数据库字符格式,解决中文乱码问题
mysql_query(&local_mysql, "set names 'gb2312'");
}
// 创建 SQL 语句字符串
CString sql_insert;
sql_insert.Format("insert into wheel(m_WheelSpeed) values ( \'%s\')",local_m_WheelSpeed);
// 执行 sql 语句。
// mysql_query() 的返回值份很多情形, 进行判断使要注意。
if(mysql_query(&local_mysql,(char*)(LPCTSTR)sql_insert)==0)
{
AfxMessageBox("insert succeed!");
}else{
AfxMessageBox("insert failed!");
}
// 关闭 local_mysql 所关联的数据库连接, 一般情况下不用写。
mysql_close(&local_mysql);
UpdateData(FALSE);
}