【我真的没有很花心要写这么多语言,但是我们老师总是有杂七杂八的项目要交给我们做】
之前已经做到了使用DS18B20温度传感器,通过keil u version4把程序烧到板子里,在串口调试助手里面已经看到了串口的温度数据。
然后我使用Taltech这个软件,将串口数据转为socket发送到远程电脑上,
里面只需要填写 Remote Host IP Address和Remote Port,IP使用20013。
只需要填写IP地址和端口号就行了。
在服务器端。使用USR_TCP232_Test这个软件来查看数据是否接收到。
选择Tcp Server,启动20013端口的监听,这个端口和刚刚TalTech上设置相同,然后看看能否收到数据。
这是我所收到的数据。
接着就是传到数据库里面去了。
#include "ADO.h" BOOL CMySocketRecvDlg::SaveDataToDB(CString strRecv) { CString m_strConnectionString=""; CString strDbType="MySQL"; CString m_strDBUser="ylx",m_strDBPassword="ylx",m_strServerName="ylx"; CAdoConnection* m_pConnection=NULL; CAdoRecordSet* m_pRecordSet=NULL; BOOL bOk=FALSE,m_bConnected=FALSE; if(strDbType =="MySQL") { m_strConnectionString="DSN=ADOLinkMySQL;User ID="+ m_strDBUser+";password="+ m_strDBPassword+";Data Source="+m_strServerName+";"; } try { m_pConnection=new CAdoConnection(); if(m_pConnection->Open(m_strConnectionString)){ bOk=TRUE; m_bConnected=TRUE; }else{ ShowMsg("打开连接不成功!"); } //保存数据 CString strDeviceId,strDeviceName,strTemperature,strHumidity; GetInfoFromReceiveData(strRecv,strDeviceId,strDeviceName,strTemperature,strHumidity); CString strSql; strSql="insert into video_record(device_id,device_name,temperature,humidity,register,register_time) values('"+strDeviceId+"','"+strDeviceName+"','"+strTemperature+"','"+strHumidity+"','admin','"+CTime::GetCurrentTime().Format("%Y-%m-%d %H:%M:%S")+"')"; ShowMsg(strSql); m_pConnection->Execute(strSql); ShowMsg("保存进了数据库"); //然后释放连接 m_pConnection->Close(); delete m_pConnection; } catch(...) { ShowMsg("打开数据库出错"); bOk=FALSE; } return 0; }
做到这里的时候,程序运行的时候显示“打开连接不成功!”然后“保存进了数据库”。然后打开MySQL发现表还是没有新的数据记录。
猜测是没有连上数据库,但是程序还是继续运行了所导致的。
连不上数据库的可能是没有配置ODBC数据源。
明天希望能解决这个问题。
【标签里面没有C语言好难过】
hasty
慕九州3535911
相关分类