Chinaunix

标题: 在DOS控制台输入SQL命令插入汉字可以。但是用ODBC 插入汉字时报错?紧急求救 [打印本页]

作者: light511    时间: 2010-09-28 21:58
标题: 在DOS控制台输入SQL命令插入汉字可以。但是用ODBC 插入汉字时报错?紧急求救
MYSQL5+ODBC+MFC开发了个小程序,往数据库中插入记录,下面是出错的语句。(查询语句正常,汉字也能正常显示。)请高手指点其中的道理,多谢。

  1.         wsprintf(buf, "insert into material material_name ,material_unit , material_type ) values ( '%s','%s','%s') ", mymaterial_name, mymaterial_unit, mymaterial_type);
  2.         rc = SQLExecDirect(hSTMT, (SQLCHAR *)buf, SQL_NTS);
复制代码
程序执行到以上代码时异常推出。rc=-1
1,我把mymaterial_name, mymaterial_unit, mymaterial_type三个值输入中文时报错。
2,我把三个值输入英文就可以插入到MYSQL中了。
3,我在WINDOW的控制台中用MYSQL命令登陆后,直接执行SQL语句,也能正常插入汉字值。语句如下:
insert into material (material_name, material_unit, material_type) value ( " 大白菜 "," 斤 ","菜");
作者: light511    时间: 2010-10-10 15:31
回复 1# light511


    自己回复下,问题已经解决,在创建数据库时设置数据集为UTF8即可。
但是又有个新问题,插入汉字可以了,控制台里查询出来汉字显示是正常的。但是程序里查询出来是乱码。是怎么回事?
作者: strong_sjhi    时间: 2010-10-11 10:05
程序编码选择有问题,编码选择utf-8格式, set names utf8.
作者: light511    时间: 2010-10-12 22:52
回复 3# strong_sjhi


   请问怎么选择程序编码?
作者: mysqllog    时间: 2010-10-13 08:18
关于编码,在WEB应用,要注意几点:
服务器端(存储)的字符集
客户端的字符集
连接所用的字符集
返回结果的字符集

要保证它们之间的一致性




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2