【我真的沒有很花心要寫這么多語言,但是我們老師總是有雜七雜八的項目要交給我們做】之前已經(jīng)做到了使用DS18B20溫度傳感器,通過keil u version4把程序燒到板子里,在串口調(diào)試助手里面已經(jīng)看到了串口的溫度數(shù)據(jù)。然后我使用Taltech這個軟件,將串口數(shù)據(jù)轉(zhuǎn)為socket發(fā)送到遠(yuǎn)程電腦上,里面只需要填寫?Remote?Host?IP?Address和Remote?Port,IP使用20013。只需要填寫IP地址和端口號就行了。在服務(wù)器端。使用USR_TCP232_Test這個軟件來查看數(shù)據(jù)是否接收到。選擇Tcp Server,啟動20013端口的監(jiān)聽,這個端口和剛剛TalTech上設(shè)置相同,然后看看能否收到數(shù)據(jù)。這是我所收到的數(shù)據(jù)。接著就是傳到數(shù)據(jù)庫里面去了。#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("打開連接不成功!");
??}
??//保存數(shù)據(jù)
??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("保存進(jìn)了數(shù)據(jù)庫");
??//然后釋放連接
??m_pConnection->Close();
??delete?m_pConnection;
?}
?catch(...)
?{
??ShowMsg("打開數(shù)據(jù)庫出錯");
??bOk=FALSE;
?}
?return?0;
}做到這里的時候,程序運行的時候顯示“打開連接不成功!”然后“保存進(jìn)了數(shù)據(jù)庫”。然后打開MySQL發(fā)現(xiàn)表還是沒有新的數(shù)據(jù)記錄。猜測是沒有連上數(shù)據(jù)庫,但是程序還是繼續(xù)運行了所導(dǎo)致的。連不上數(shù)據(jù)庫的可能是沒有配置ODBC數(shù)據(jù)源。明天希望能解決這個問題?!緲?biāo)簽里面沒有C語言好難過】
添加回答
舉報
0/150
提交
取消