sprintf的问题
我需要将对话框中编辑框里的字符串写入数据库,语句如下
sprintf(SQLchar,"UPDATE SYS_USERINFO SET USERNAME='%s',PASSWORD='%s',DISCRIBE='%s',DEPARTMENT='%s',REMARKS='%s',ISVALIDATE=%d,EMAIL='%s',GISACCOUNT='%s',ISABLEOFFLINE=%d,EXPORTREGION=%f WHERE USER_ID=%d",
userdate.XMofUser,m_Base.encode(userdate.password),userdate.depict,userdate.department,userdate.remark,userdate.isvalidate,userdate.EmailStr,userdate.username,isOffLine,exportRange,userdate.id);
当字符串中含有单引号时,SQL语句执行会有问题,因此我从CEDIT类自己继承了一个类,将其GETWINDOWTEXT改写了一下,处理了单引号(就是将一个单引号变成两个单引号)
这样处理后如果字符串都是英文和数字组成的话没有问题,含有中文且含一个单引号也没问题,但是如果是中文字符串并且夹着两个单引号程序就会在sprintf这里挂掉,不知道是怎么回事。。