vc ado中结构体数据存到sql数据库中
void GpsData::SaveDataBase(gps_info_t gpsinfo)
{
int lngt=(int)gpsinfo.lngt;//gpsinfo.lngt是unsigned long型
int lat=(int)gpsinfo.lat;如上
char loc=(char)gpsinfo.loc;
char status=(char)gpsinfo.status;
CString sql;
sql=(CString) lngt;
MessageBox(lngt,"数据库连接失败!","系统提示",MB_OK|MB_ICONSTOP);
//sql.Format("INSERT INTO [GPRSdata].[dbo].[m_gprsdata]([longitude],[latitude] ,[local] ,[status])VALUES( lngt,lat,loc,status))"
//);
// strQuery= "Insert into m_gprsdata(longitude,latitude,local,status) values(lngt,lat,local,status)";
// LRunSql::InitConnectPtr();
//runsql.CheckSQLResult(sql); //有调用runsql.RunSQL(strQuery);
}运行没有错,但就是sql数据库中是空的,要是换成strQuery= "Insert into m_gprsdata(longitude,latitude,local,status) values(2,2,2,2)";数据库中就有了。这是怎么回事呢?
追问:我都改成number了,现在的问题是什么都没错,就是数据库中没有记录,怎么就写入不了数据呢?把那个status改成%s 然后就出现程序停止。。郁闷了,,出现了图片那样的应该是数据库插入语句的问题,我的数据时unsigned long类型的,数据库中想要以decimal类型存储,存不上,然后数据库中我改为了float类型,unsigned long转换为double,然后存进去就会出现debug error, abnormal program 的错误。typedef struct gps_info_tag
{
unsigned long lngt;
unsigned long lat;
unsigned char speed;
unsigned char dir;
ip_addr_t ip;
unsigned short loc;
unsigned short cell;
unsigned short time;
unsigned char status;
}gps_info_t;
这个结构体,数据库中具体的存储类型是哪种啊?像decimal(n,0)n要设置几位?
答案:--用下容器,vector ,map 等等都可以
typedef struct tag_strinfo {
CString str;
CString str1;
} strinfo ;
vector<strinfo> pr;
strinfo pi;
pi. str= str;
pi. str1= str1;
pr.push_back(pi);
int i;
for(i=0;i<pr.size();i++)
{
CString str2;
str2=pr[i].jifen;
}
其他:CString strQuery;
strQuery.format(_T( "Insert into m_gprsdata(longitude,latitude,local,status) values('%d','%d','%s','%s')"),lngt,lat,loc,status);
runsql.RunSQL((_bstr_t)strQuery);
上一个:急!!!VC++背景图片
下一个:VC6.0 mfc的mscomm控件与单片机串口通信 接收数据不成功