当前位置:编程学习 > VC++ >>

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控件与单片机串口通信 接收数据不成功

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,