中易网

C++中,查询sqlserver时 sql语言中如何引用int变量

答案:2  悬赏:40  
解决时间 2021-01-26 08:20
C++中,查询sqlserver时 sql语言中如何引用int变量
最佳答案
可以自己先用sprintf,或者CString类的Format函数把SQL语句格式化好之后,再传给Open函数,如:
int i=1;
CString strSQL;
strSQL.Format("SELECt * FROM Line Where ID=%d", i);
m_pRecordset->Open(strSQL.GetBuffer(100),m_pConnection.GetInterfacePtr(),adOpenStatic,adLockOptimistic,adCmdText);//执行SQL语句
追问:strSQL.GetBuffer(100)这个是什么意思
还有还是有错
错误3error C2664:不能将参数 1 从“const char [31]”转换为“const wchar_t *”e:\空间数据库\sql\sql\sqlview.cpp183
追答:m_pRecordset->Open函数需要一个LPCTSTR类型的参数,所以要用CString类的GetBuffer函数获得一个字符串指针,根据VS的不同版本,GetBuffer可能不需要参数,如果编译的时候报错,把里面的100去掉再试试。如果编译报其它错,再追问。
看你的报错信息,你的工程用的应该是宽字符,所以字符串都是wchar_t *类型的,一个字符要占用两个字节,需要修改一下:
int i=1;
CString strSQL;
strSQL.Format("SELECt * FROM Line Where ID=%d", i);
wchar_t *pSQL = strSQL.AllocSysString();
m_pRecordset->Open(pSQL,m_pConnection.GetInterfacePtr(),adOpenStatic,adLockOptimistic,adCmdText);//执行SQL语句改成上面的代码再试试。

追问:有错 错误在这句话 si.Format("SELECt * FROM Line Where ID=%d", i);
还是这个原因 不能将参数 1 从“const char [31]”转换为“const wchar_t *”
追答:这样的话,改一下试试:
si.Format(_T("SELECt * FROM Line Where ID=%d"), i);
追问:OK啦 多谢多谢 那这是什么原因啊
追答:你建工程的时候可能选择了Unicode字符集,它的一个字符需要占两个字节,跟我们平常的ANSI字符集一个字符占一字节不一样,所以写字符串的时候用_T这个宏来适配一下。如果自己在char*和wchar_t*之间转换的话,会比较麻烦。
全部回答
CString sql;
sql.Format(_T("SELECt * FROM 表名 Where ID=%d"),i);
USES_CONVERSION;
 LPSTR strSQL=T2A(sql);
m_pRecordset->Open(strSQL,
m_pConnection.GetInterfacePtr(),
adOpenStatic,
adLockOptimistic,
adCmdText);
如上,把int型变量i 组合成cstring字符串,然后类型转换,就可以用了。
可以组合各种数据类型,char要加'%s'例如char str;sql.Format(_T("SELECt * FROM 表名 Where ID='%s'"),str);
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
求大神把我P成一个女人
鑫美涛汽车美容维修地址有知道的么?有点事想
苹果mini1能不能装电话卡
天意造型地址好找么,我有些事要过去
历史虚无主义否定抗战过程案例
hand it和hand in 哪个正确?
求壳之少女动漫百度云资源,
怎样知道ASTM的某一标准最新版本是哪个?
比喻母亲的爱的句子
把钱转入骗子的支付宝后怎么才能追回?
中国联通(驼腰岭镇)地址有知道的么?有点事想
既然考举人可以做官干嘛还要考贡生和进士?
讲述新老两代讨海人对于海的热爱,通过新老不
江苏离重庆远一点,还是浙江离重庆远一点,还是
t为什么大于等于1, 从何而来
推荐资讯
车祸有人员受伤,脾切除一小块,没下责任认定
这个漫画出自哪里哦
TiC中钛和碳的价态各是多少
matlab 哪个版本最好用
怎么做水煮草鱼,水煮草鱼做法
iphone怎么设置大容量储存模式
如果用HTML5做3D小熊,会怎样
一世缘婚纱摄影(建设路1号附近一世缘婚纱摄影
99又72分之71乘以夸号负的72挂号
嫁对郎婚纱摄影地址好找么,我有些事要过去
我戴上镣铐后下身就硬了是怎么回事?
荷苯施喝了多久以后女人会有想要的感觉,应该
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?