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的结构如下:

其中timegps,s1_distancestr,s1xstr等变量均为CString 类型变量
timegps为格式化后的时间字符串,
s1_distancestr为double类型变量s1_distance格式化后的字符串
如:s1_distancestr.Format("%.2lf",s1_distance);
执行插入后,结果如下图所示:

可以看到虽然插入时的SQL语句中变量为Cstring类型,但是不影响它在数据库中的存储类型,应该是内部已经帮忙转化过了
当把表Gps的结构除了datetime列以外全部改为varchar(50)类型时,也能全部存储。
另外数据库中float int类型插入的时候,如果变量数据为空,则默认插入0
varchar 默认插入为空
必要的时候可以通过判断这些状态,从而看出数据异常~

原文地址:https://www.cnblogs.com/amengduo/p/9586654.html