双字节字符与sql语句的问题!

skyMountain 2005-03-24 11:52:06
请看下面代码:
CString strSql;
strSql.format("select * from T_user where name='%s'","罗大佑");
一般情况下这条sql语句执行都没有问题,可是……
"罗大佑"是汉字,每个汉字两个字节,这一串字符总共是6个字节。
现在假设文件出错,最后一个字符弄丢了,这一串字符变成了5个字节。那么问题来了,format之后,strSql变成
select * from T_user where name='罗大?
最后一个“?”是有半个“佑”字加上单引号“ ' ”组成的。因此,这一串sql语句成为不合法语句。

就是这个问题,我追踪了好久才发现的。请问各位大虾,有何解决方法?
...全文
110 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
skyMountain 2005-03-25
  • 打赏
  • 举报
回复
如何判断这种文件出错?靠,我觉得用这种方法甚至可以进行sql攻击!
LiaoCheng 2005-03-25
  • 打赏
  • 举报
回复
最好是防止文件不要出错!
skyMountain 2005-03-25
  • 打赏
  • 举报
回复
当然可能,我就是遇到这样一个文件,最后跟踪发现这种情况的。文件在储存或传输、处理的过程中变成乱码,这种情况不算奇怪吧!
yesyesyes 2005-03-24
  • 打赏
  • 举报
回复
假设文件出错,最后一个字符弄丢了
--------------------------------
可能吗?

27,582

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧