2 qq 26348877 qq_26348877 于 2017.01.11 20:04 提问

MFC Unicode编码,如何用Format参数化sql语句

MFC的工程,使用Unicode编码格式,我用ado连接的Oracle数据库,连接是成功的,但是CString sql,使用sql.Format参数化SQL语句时,总是查不到结果
CString sql, str;
sql.Format(L"select * from Hrinsurance where %s", str);// 查询
// MessageBox(sql, NULL, MB_OK);
ADO ado;
_variant_t vFValue;
CString strFValue;
ado.OnInitDBConnect();
m_insuranceSet = ado.GetRecordSet(_bstr_t(sql));
应该是编码的问题,请问如何修改,试了几种编码还是不行

2个回答

oyljerry
oyljerry   Ds   Rxr 2017.01.11 22:22
已采纳

先看你的sql语句format后到底是否语法正确。
http://blog.csdn.net/robin__chou/article/details/42885909

qq_26348877
qq_26348877 是正确的,我用MessageBox弹出看了的,不是第一次用,之前VC6.0没Unicode编码就可以,Format("")直接在引号里写就行了,现在需要Format(L""), 然后将sql执行就查不了,我想应该是编码或类型问题,我直接写sql=""可以执行,但是想用Format参数化sql语句
11 个月之前 回复
qq_26348877
qq_26348877   2017.01.11 22:28

是正确的,我用MessageBox弹出看了的,不是第一次用,之前VC6.0没Unicode编码就可以,Format("")直接在引号里写就行了,现在需要Format(L""),
然后将sql执行就查不了,我想应该是编码或类型问题,我直接写sql=""可以执行,但是想用Format参数化sql语句

oyljerry
oyljerry 回复-林森: 如果有帮助,请采纳答案
11 个月之前 回复
qq_26348877
qq_26348877 回复oyljerry: 自动生成的sql脚本,Oracle的版本,因为大小写的原因,它表名和字段名都添加了""双引号,昨天把表名改了,字段名没注意,应该是这里的问题,多谢了
11 个月之前 回复
qq_26348877
qq_26348877 回复oyljerry: 多谢你的提醒,我应该找到,format是正确的,数据库那边的问题,因为我是用PowerDesign设计的数据库,
11 个月之前 回复
oyljerry
oyljerry 那就是你的str是什么编码格式。既然直接写sql可以,那么还是format不正确
11 个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!