最近用vc+sqlserver进行编程
用了以下的sql语句
sSQL.Format("INSERT INTO %s values(%s,'%s')",m_DataBaseName,sID,sName);
sID ,sName都是CString的
但是为什么sql语句中的sID是%s,而sName的是‘%s’,
我的数据库中sID是int类型的,
请问为什么得到的结果也是对的
难道还可以自动转换。。谢谢各位高手,在线等待
用了以下的sql语句
sSQL.Format("INSERT INTO %s values(%s,'%s')",m_DataBaseName,sID,sName);
sID ,sName都是CString的
但是为什么sql语句中的sID是%s,而sName的是‘%s’,
我的数据库中sID是int类型的,
请问为什么得到的结果也是对的
难道还可以自动转换。。谢谢各位高手,在线等待
%s表明sID是字符串类型
而写如数据库中如果是字符串,要加2个单引号,即'%s'就代表写如数据库是字符串。
根据 sSQL的值判断,是不是这句话的问题哟。我觉得应该是你那个sID的数据类型的问题吧
int型不需用 ' ' 字符串型必需要 ' '
我的库的第一个字段是%d的
为什么value(%s)呢
输出的SQL语句:"....values(100,'xxxxx')"这有什么不对吗?
//Database name or Table name
int sID=100;
CString sName="xxxxx";
.....sql.Format("..... values(%d,%s)",....,sID,sName);输出的SQL语句:"....values(100,'xxxxx')"
sql.Format("..... values(%d,'%s')",....,sID,sName);
后来这个串被传给数据库去执行。数据库面对()里面的东西,一看5没被单引号包,说明是数值型字段,刚巧表的第一个字段是int型,对了,再看str被单引号包,说明是字串子段,一比表结构,巧了,表第二列也是字串型。没话说,只好执行了。理解了吗,多是合理的呀!