qq_40568813 2018-07-02 02:08 采纳率: 50%
浏览 1129
已结题

vs2010上位机与mysql的连接

我把上位机和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); 

}

  • 写回答

7条回答 默认 最新

  • threenewbee 2018-07-02 02:16
    关注

    你的代码什么乱七八糟的
    case 2:
    AddDataToLists();
    break;

    那么case 1:呢
    switch呢。
    是不是漏了什么。

    数据接收完整么?用串口助手看了么?什么样的数据没有入库,找下规律。

    评论

报告相同问题?

悬赏问题

  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容