ADO方式,VC调用Execute执行INSERT INTO插入变量SQL语句的写法

时间:2023-03-09 04:49:00
ADO方式,VC调用Execute执行INSERT INTO插入变量SQL语句的写法

ADO方式,VC调用Execute执行INSERT INTO插入变量SQL语句的写法

有些情况下,SQL SERVER 2008r2中需要保存float,int类型的数据,当C
中的变量为double类型时,先格式化为Cstring格式,再组合成SQL语句。

对应的C 插入语句写法如下:

[cpp] view plain copy



   
m_pConnection->Execute(_bstr_t("INSERT INTO
Gps(GPSTIME,S1XZWZ,S1X,S1Y,S1HZJD,S1DW,S1FX)\
 

           
VALUES ('" timegps "','" s1_distancestr "','" s1xstr "','" s1ystr
"','" s1hzjdstr "','" sdw1 "','" s1fangxiang
"')"),NULL,adCmdText);   



其中表Gps的结构如下:

ADO方式,VC调用Execute执行INSERT INTO插入变量SQL语句的写法INTO插入变量SQL语句的写法">


其中timegps,s1_distancestr,s1xstr等变量均为CString 类型变量

timegps为格式化后的时间字符串,

s1_distancestr为double类型变量s1_distance格式化后的字符串

如:s1_distancestr.Format("%.2lf",s1_distance);

执行插入后,结果如下图所示:

ADO方式,VC调用Execute执行INSERT INTO插入变量SQL语句的写法INTO插入变量SQL语句的写法">


可以看到虽然插入时的SQL语句中变量为Cstring类型,但是不影响它在数据库中的存储类型,应该是内部已经帮忙转化过了

当把表Gps的结构除了datetime列以外全部改为varchar(50)类型时,也能全部存储。

另外数据库中float int类型插入的时候,如果变量数据为空,则默认插入0

varchar 默认插入为空

必要的时候可以通过判断这些状态,从而看出数据异常~