串口数据写不进数据库是什么原因??
void CBanben1Dlg::OnComm()
{
// TODO: Add your control notification handler code here
UpdateData(true);
int flag;
LONG i=0;
VARIANT variant_inp;
COleSafeArray safearray_inp;
LONG len,k;
BYTE rxdata[2048]; //设置BYTE数组 An 8-bit integerthat is not signed.
CString strtemp;
if(bReceive)
{
if(m_MSComm.GetCommEvent()==2) //事件值为2表示接收缓冲区内有字符
{
variant_inp = m_MSComm.GetInput(); //读缓冲区
safearray_inp = variant_inp; //VARIANT型变量转换为ColeSafeArray型变量
len=safearray_inp.GetOneDimSize(); //得到有效数据长度
for(k=0;k<len;k++)
safearray_inp.GetElement(&k,rxdata+k);//转换为BYTE型数组
for(k=0;k<len;k++) //将数组转换为Cstring型变量
{
BYTE bt=*(char*)(rxdata+k); //字符型
if(m_nInputMode == 2)
strtemp.Format("%02X ",bt); //将字符以十六进制方式送入临时变量strtemp存放,注意这里加入一个空隔
else
strtemp.Format("%c",bt); //将字符送入临时变量strtemp存放
m_Rev = m_Rev + strtemp; //加入接收编辑框对应字符串
}
m_Rev += "\r\n";
}
void CBanben1Dlg::OnBtnAdd()
{
// TODO: Add your control notification handler code here
UpdateData();
_RecordsetPtr m_pRecordset;
_ConnectionPtr m_pConnection;
m_pConnection.CreateInstance(__uuidof(Connection));
m_pRecordset.CreateInstance(__uuidof(Recordset));
try
{
m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=database.mdb","","",adModeUnknown);
m_pRecordset->Open("SELECT * FROM Budget", // 查询DemoTable表中所有字段
m_pConnection.GetInterfacePtr(), // 获取库接库的IDispatch指针
adOpenDynamic,
adLockOptimistic,
adCmdText);
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
}
CString strDate,strType,strHandler;
//添加新记录
m_pRecordset->AddNew();
m_pRecordset->PutCollect("DataA",_variant_t(strDate));
m_pRecordset->Update();
m_pRecordset->Close();
m_pRecordset = NULL;
}
//该按钮的功能是把串口数据写到数据库中,但是写入的时候就会出错,单步调试的时候,到try{
}的结尾处就会报错,报错原因是Microsoft c++ Exception,还请高手知道一下,这个问题已经困扰我2天了······