我的应用程序是从客户端收到数据,然后写进数据库中。用的是CAsyncsocket,通信在测试时一点问题也没有。写进数据库用的是ODBC访问方式,CRecordset根据MFC AppWizard(exe)自动生成。但在程序正常运行一天后,会跳出提示(“通讯连接失败!”),我的程序中没有手工写这样的出错提示。我写数据库的代码如下:
void CServerDlg::OnSockReceive(WPARAM wP,LPARAM lP)
{
int bb;
bb=serversock.Receive((BYTE *)(&myreport),sizeof(myreport),0);
serversock.Close();
if(bb==sizeof(myreport)){
differ_1.Format("%.2f",myreport.LGL1);
differ_2.Format("%.2f",myreport.LGL2);
differ_3.Format("%.2f",myreport.LGL3);
differ_4.Format("%.2f",myreport.LGL4);
differ_5.Format("%.2f",myreport.LGL5);
differ_6.Format("%.2f",myreport.LSN1);
differ_7.Format("%.2f",myreport.LSN2);
differ_8.Format("%.2f",myreport.LSN3);
differ_9.Format("%.2f",myreport.LSN4);
differ_10.Format("%.2f",myreport.LSN5);
differ_11.Format("%.2f",myreport.LWJJ1);
differ_12.Format("%.2f",myreport.LWJJ2);
differ_13.Format("%.2f",myreport.LWJJ3);
differ_14.Format("%.2f",myreport.LS);
item_2.Format("%.2f",myreport.SGL2);
item_3.Format("%.2f",myreport.SGL3);
item_4.Format("%.2f",myreport.SGL4);
item_5.Format("%.2f",myreport.SGL5);
item_6.Format("%.2f",myreport.SSN1);
item_7.Format("%.2f",myreport.SSN2);
item_8.Format("%.2f",myreport.SSN3);
item_9.Format("%.2f",myreport.SSN4);
item_10.Format("%.2f",myreport.SSN5);
item_11.Format("%.2f",myreport.SWJJ1);
item_12.Format("%.2f",myreport.SWJJ2);
item_13.Format("%.2f",myreport.SWJJ3);
item_14.Format("%.2f",myreport.SS);
item_1.Format("%.2f",myreport.SGL1);
if(!myset.Open())myset.Open();
myset.AddNew();
a=20040728;
myset.m_real_id.Format("%d",a); ///唯一编号
myset.m_plant_id.Format("%s","03"); ///楼号
myset.m_car_id=myreport.CH; ///车号
myset.m_car_id=delespace(myset.m_car_id);
myset.m_contact_id=myreport.HTBH; ///任务单编号
myset.m_contact_id=delespace(myset.m_contact_id);
CString time1;
time1.Format("%s",myreport.SJ);
int year=atoi(time1.Mid(0,4)); int month=atoi(time1.Mid(5,2));
int day=atoi(time1.Mid(8,2));
int hour=atoi(time1.Mid(11,2));
int minute=atoi(time1.Mid(14,2));
int second=atoi(time1.Mid(17,2));
myset.m_date_time=CTime(year,month,day,hour,minute,second);
///理论值
myset.m_differ_1=differ_1;
myset.m_differ_2=differ_2;
myset.m_differ_3=differ_3;
myset.m_differ_4=differ_4;
myset.m_differ_5=differ_5;
myset.m_differ_6=differ_6;
myset.m_differ_7=differ_7;
myset.m_differ_8=differ_8;
myset.m_differ_9=differ_9;
myset.m_differ_10=differ_10;
myset.m_differ_11=differ_11;
myset.m_differ_12=differ_12;
myset.m_differ_13=differ_13;
myset.m_differ_14=differ_14;
myset.m_driver=myreport.JSY; ///操作员
myset.m_driver=delespace(myset.m_driver);
myset.m_intension=myreport.TQD; ///砼强度
myset.m_intension=delespace(myset.m_intension);
///实际值
myset.m_item_1=item_1;
myset.m_item_2=item_2;
myset.m_item_3=item_3;
myset.m_item_4=item_4;
myset.m_item_5=item_5;
myset.m_item_6=item_6;
myset.m_item_7=item_7;
myset.m_item_8=item_8;
myset.m_item_9=item_9;
myset.m_item_10=item_10;
myset.m_item_11=item_11;
myset.m_item_12=item_12;
myset.m_item_13=item_13;
myset.m_item_14=item_14;
myset.m_landslide=myreport.TLD; ///坍落度
myset.m_landslide=delespace(myset.m_landslide);
myset.m_operator=myreport.CZY; ///操作员
myset.m_operator=delespace(myset.m_operator);
myset.m_prop_id=myreport.PFH; ///配方号
myset.m_prop_id=delespace(myset.m_prop_id);
myset.Update();
myset.Close();
}
}麻烦大家帮我找找原因啊!可能有几种原因有什么好的办法,谢谢!
void CServerDlg::OnSockReceive(WPARAM wP,LPARAM lP)
{
int bb;
bb=serversock.Receive((BYTE *)(&myreport),sizeof(myreport),0);
serversock.Close();
if(bb==sizeof(myreport)){
differ_1.Format("%.2f",myreport.LGL1);
differ_2.Format("%.2f",myreport.LGL2);
differ_3.Format("%.2f",myreport.LGL3);
differ_4.Format("%.2f",myreport.LGL4);
differ_5.Format("%.2f",myreport.LGL5);
differ_6.Format("%.2f",myreport.LSN1);
differ_7.Format("%.2f",myreport.LSN2);
differ_8.Format("%.2f",myreport.LSN3);
differ_9.Format("%.2f",myreport.LSN4);
differ_10.Format("%.2f",myreport.LSN5);
differ_11.Format("%.2f",myreport.LWJJ1);
differ_12.Format("%.2f",myreport.LWJJ2);
differ_13.Format("%.2f",myreport.LWJJ3);
differ_14.Format("%.2f",myreport.LS);
item_2.Format("%.2f",myreport.SGL2);
item_3.Format("%.2f",myreport.SGL3);
item_4.Format("%.2f",myreport.SGL4);
item_5.Format("%.2f",myreport.SGL5);
item_6.Format("%.2f",myreport.SSN1);
item_7.Format("%.2f",myreport.SSN2);
item_8.Format("%.2f",myreport.SSN3);
item_9.Format("%.2f",myreport.SSN4);
item_10.Format("%.2f",myreport.SSN5);
item_11.Format("%.2f",myreport.SWJJ1);
item_12.Format("%.2f",myreport.SWJJ2);
item_13.Format("%.2f",myreport.SWJJ3);
item_14.Format("%.2f",myreport.SS);
item_1.Format("%.2f",myreport.SGL1);
if(!myset.Open())myset.Open();
myset.AddNew();
a=20040728;
myset.m_real_id.Format("%d",a); ///唯一编号
myset.m_plant_id.Format("%s","03"); ///楼号
myset.m_car_id=myreport.CH; ///车号
myset.m_car_id=delespace(myset.m_car_id);
myset.m_contact_id=myreport.HTBH; ///任务单编号
myset.m_contact_id=delespace(myset.m_contact_id);
CString time1;
time1.Format("%s",myreport.SJ);
int year=atoi(time1.Mid(0,4)); int month=atoi(time1.Mid(5,2));
int day=atoi(time1.Mid(8,2));
int hour=atoi(time1.Mid(11,2));
int minute=atoi(time1.Mid(14,2));
int second=atoi(time1.Mid(17,2));
myset.m_date_time=CTime(year,month,day,hour,minute,second);
///理论值
myset.m_differ_1=differ_1;
myset.m_differ_2=differ_2;
myset.m_differ_3=differ_3;
myset.m_differ_4=differ_4;
myset.m_differ_5=differ_5;
myset.m_differ_6=differ_6;
myset.m_differ_7=differ_7;
myset.m_differ_8=differ_8;
myset.m_differ_9=differ_9;
myset.m_differ_10=differ_10;
myset.m_differ_11=differ_11;
myset.m_differ_12=differ_12;
myset.m_differ_13=differ_13;
myset.m_differ_14=differ_14;
myset.m_driver=myreport.JSY; ///操作员
myset.m_driver=delespace(myset.m_driver);
myset.m_intension=myreport.TQD; ///砼强度
myset.m_intension=delespace(myset.m_intension);
///实际值
myset.m_item_1=item_1;
myset.m_item_2=item_2;
myset.m_item_3=item_3;
myset.m_item_4=item_4;
myset.m_item_5=item_5;
myset.m_item_6=item_6;
myset.m_item_7=item_7;
myset.m_item_8=item_8;
myset.m_item_9=item_9;
myset.m_item_10=item_10;
myset.m_item_11=item_11;
myset.m_item_12=item_12;
myset.m_item_13=item_13;
myset.m_item_14=item_14;
myset.m_landslide=myreport.TLD; ///坍落度
myset.m_landslide=delespace(myset.m_landslide);
myset.m_operator=myreport.CZY; ///操作员
myset.m_operator=delespace(myset.m_operator);
myset.m_prop_id=myreport.PFH; ///配方号
myset.m_prop_id=delespace(myset.m_prop_id);
myset.Update();
myset.Close();
}
}麻烦大家帮我找找原因啊!可能有几种原因有什么好的办法,谢谢!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货