这是我写的串口接受的程序,现在可以接收串口数据并成功存入数据库,但是无法将数据根据需要存入数据库表中的特定列。接收的数据应该是以空格来断开,从而存入不同的表中,现在只能讲接受的数据都存入一列当中,请大家帮我看看程序,怎么改写。先谢过大家
void CChuankouDlg::OnComm()
{
xinxi m_xinxi;
// TODO: Add extra initialization here
VARIANT variant_inp;
COleSafeArray safearray_inp;
LONG len,k;
BYTE rxdata[2048];
CString str;
CString str1;
CString str2;
CString strtemp;
if (m_ctrlComm.GetCommEvent() == 2)//事件值为2表示接收缓冲区内有字符
{
variant_inp = m_ctrlComm.GetInput();
safearray_inp = variant_inp;
len = safearray_inp.GetOneDimSize();
for (k = 0; k<len; k++)
{
safearray_inp.GetElement(&k, rxdata + k);
}
for (k = 0; k<len; k++)
{
BYTE bt = *(char*)(rxdata + k);
strtemp.Format("%c", bt);
m_strEditRXData += strtemp;
str += strtemp;
}
//::MessageBox(NULL,time,"当前时间",MB_OK);
COleDateTime time = COleDateTime::GetCurrentTime();
CString s1= time.Format("%y:%m:%d:%H:%M:%S");
m_xinxi.sql_insert(s1,str,str2);
}
UpdateData(FALSE);//更新编辑框内容
}
参考:http://bbs.csdn.net/topics/260069024
1.根据空格拆分数据,把数据放到一个数组里,可以参考
http://blog.csdn.net/butterfly_dreaming/article/details/10142443
2.然后把数据写入到数据库里
你可以分两步来解决你的问题:
1 数据通过串口接受与解析,以空格作为分割需要自己编码实现。有字符串处理函数可以方便的满足你的要求。好像是 strtok 之类,具体用法看帮助,有实例代码的。
2 写数据库