我用SerialPort写了一个串口接收图像信息的程序,并把接受到的图像信息存入到Access数据库OLE大对象中!SerialPort接受到的是字符型数据,如何存储到OLE大对象中的CLongBinary中呢?部分程序代码如下:
LONG CMyPortTestView::OnComm(WPARAM ch, LPARAM port)
{
static int flag; //用于接收阶段标记 if(m_bSerialPortOpened)
{
//十六进制显示
if(m_ctrlHexReceive.GetCheck())
strTemp.Format("%02X ",ch); //将字符以十六进制方式送入临时变量strtemp存放,注意这里加入一个空隔
else
strTemp.Format("%c",ch); //以下为协议代码
switch(ch)
{
case '$':
flag=0;
strTemp.Empty(); //清空数据区
strPicData.Empty(); //清空图像暂存器
break;
case '*': //有效数据结束
flag=1;
break;
default:
if(flag=1)
{
strPicData+=strTemp; //暂存图像信息
m_strRXPicData=strPicData;
m_strRXData+=strTemp; //加入接收编辑框对应字符串
} UpdateData(FALSE); //显示数据
}
} return 0;
} void CMyPortTestView::OnButtonPicGather()
{
// TODO: Add your control notification handler code here //数据处理代码:将接收到的图像信息保存到数据库biao中
m_pSet->AddNew(); //这里如何将strPicData图像信息存储到OLE对象m_pSet->m_rxdata中?请大家多多指教!
}
LONG CMyPortTestView::OnComm(WPARAM ch, LPARAM port)
{
static int flag; //用于接收阶段标记 if(m_bSerialPortOpened)
{
//十六进制显示
if(m_ctrlHexReceive.GetCheck())
strTemp.Format("%02X ",ch); //将字符以十六进制方式送入临时变量strtemp存放,注意这里加入一个空隔
else
strTemp.Format("%c",ch); //以下为协议代码
switch(ch)
{
case '$':
flag=0;
strTemp.Empty(); //清空数据区
strPicData.Empty(); //清空图像暂存器
break;
case '*': //有效数据结束
flag=1;
break;
default:
if(flag=1)
{
strPicData+=strTemp; //暂存图像信息
m_strRXPicData=strPicData;
m_strRXData+=strTemp; //加入接收编辑框对应字符串
} UpdateData(FALSE); //显示数据
}
} return 0;
} void CMyPortTestView::OnButtonPicGather()
{
// TODO: Add your control notification handler code here //数据处理代码:将接收到的图像信息保存到数据库biao中
m_pSet->AddNew(); //这里如何将strPicData图像信息存储到OLE对象m_pSet->m_rxdata中?请大家多多指教!
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货