MYSQL5+ODBC+MFC开发了个小程序,往数据库中插入记录,下面是出错的语句。(查询语句正常,汉字也能正常显示。)请高手指点其中的道理,以及解决方法多谢。
wsprintf(buf, "insert into material (material_name ,material_unit , material_type ) values ( '%s','%s','%s') ", mymaterial_name, mymaterial_unit, mymaterial_type); 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 ( " 大白菜 "," 斤 ","菜");
wsprintf(buf, "insert into material (material_name ,material_unit , material_type ) values ( '%s','%s','%s') ", mymaterial_name, mymaterial_unit, mymaterial_type); 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 ( " 大白菜 "," 斤 ","菜");
MySQL 中文显示乱码
strcpy(buf,"set names 'gbk'");
rc = SQLExecDirect(hSTMT, (SQLCHAR *)buf, SQL_NTS);
返回值是rc=-1
2,但是又有个新问题,插入汉字可以了,控制台里查询出来汉字显示是正常的。但是程序里查询出来是乱码。是怎么回事?