我的应用程序是从客户端收到数据,然后写进数据库中。用的是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();
   
   }
   
}麻烦大家帮我找找原因啊!可能有几种原因有什么好的办法,谢谢!