SQL SERVER字符集问题 在MFC ODBC(non-unicode但是unicode-ware)环境中,我将一个128位的散列值(CString)存入SQL SERVER中的一个字段中(unicode nvarchar(255)型),但是再读出来之后和原来那个值不一样.有谁知道是什么原因啊? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 CString password = _T("123");//密码CString name = _T("shw");//用户名int len = password.GetLength();//密码长度unsigned char *pPassword = (unsigned char*)(LPCTSTR)password;//转化为unsigned char*unsigned char result[16];//存放散列值MD5 md5;//加密算法实例(crypto++类库)md5.Update(pPassword,len);//接收消息md5.Final(result);//计算散列值放入resultCString cipher = (char*)result;//将result转化为CString//连接数据源(ODBC)CDatabase db;db.OpenEx(_T("DSN=CRDS;UID=sa;PWD=999199"),CDatabase::noOdbcDialog);//将记录插入数据库CString sql;sql.Format(_T("insert into user_info_tab(user_name,user_password)values( '%s ', '%s ')"),name,cipher);db.ExecuteSQL(sql);//读取密码CRecordset rs(&db); rs.Open(CRecordset::dynaset,_T( "select user_password from user_info_tab where user_name = 'shw '"));CString temp;rs.GetFieldValue((short)0,temp);//断言测试(插入前的值和读取出来的值)assert(cipher == temp);//结果失败了!!!//我个人认为是下面的代码段问题,但是不知道什么问题MD5 md5;//加密算法实例(crypto++类库)md5.Update(pPassword,len);//接收消息md5.Final(result);//计算散列值(128位)放入resultCString cipher = (char*)result;//将result转化为CString帮忙啊 在线等!!! 关于存储过程返回指定记录集的问题 请教各位一个关于左右联合的查询 求一sql 牛人请进:这个表结构该如何构造? select into 创建的表怎么删除 用一条sql查按id排序去除头3条尾4条的中间部分纪录。 请教!!!!!!!!! jbdc连接数据库?? 小弟在Windows8.1上装了sql server 2012,但附加数据库是出错,请看图片,这个问题揪心了两天~求大神指点迷津 sql跟踪 SQL2000里面做的备份在SQL7.0里为什么不能恢复 SQL 系统时间加90天怎么写?
CString name = _T("shw");//用户名
int len = password.GetLength();//密码长度
unsigned char *pPassword = (unsigned char*)(LPCTSTR)password;//转化为unsigned char*
unsigned char result[16];//存放散列值MD5 md5;//加密算法实例(crypto++类库)
md5.Update(pPassword,len);//接收消息
md5.Final(result);//计算散列值放入result
CString cipher = (char*)result;//将result转化为CString//连接数据源(ODBC)
CDatabase db;
db.OpenEx(_T("DSN=CRDS;UID=sa;PWD=999199"),CDatabase::noOdbcDialog);//将记录插入数据库
CString sql;
sql.Format(_T("insert into user_info_tab(user_name,user_password)values( '%s ', '%s ')"),name,cipher);
db.ExecuteSQL(sql);//读取密码
CRecordset rs(&db);
rs.Open(CRecordset::dynaset,_T( "select user_password from user_info_tab where user_name = 'shw '"));
CString temp;
rs.GetFieldValue((short)0,temp);//断言测试(插入前的值和读取出来的值)
assert(cipher == temp);//结果失败了!!!//我个人认为是下面的代码段问题,但是不知道什么问题
MD5 md5;//加密算法实例(crypto++类库)
md5.Update(pPassword,len);//接收消息
md5.Final(result);//计算散列值(128位)放入result
CString cipher = (char*)result;//将result转化为CString
帮忙啊 在线等!!!