看了论坛很多贴子,似乎很少讨论vc+mysql的问题。可我就遇到了 
我将缺省字符集设为gbk后,在命令行模式插入中文和查询中文都没有问题
可是我用vc,将完全一样的插入语句通过sprintf放到一个字符串里(char strsql[100])
然后用mysql_query(strsql)执行
就说什么data too long ....不能插入
然后我将插入的数据通过convert 转为 gbk后,可以插入了
可是显示却全是问号?
为什么呢?急盼回复!

解决方案 »

  1.   

    好像有个mysql_real_query()函数,记不太清楚,就是通过二进制方式传递查询语句,自己给出长度(必须是字节长度,而不是字符数)。
      

  2.   

    楼主,用vc怎么连mysql能讲讲么,这段时间我也要做。谢谢了!
      

  3.   

    关键是建表的时候要指定gb2312
    GBK好像有问题,试过一次,没具体试,我一直用gb2312CREATE TABLE `chs_radio` (
      `id` int(6) unsigned NOT NULL auto_increment,
      `name` varchar(80) character set gb2312 NOT NULL default '',
      `url` varchar(200) character set gb2312 NOT NULL default '',
      `ord` tinyint(4) NOT NULL default '0',
      `state` tinyint(4) NOT NULL default '1',
      PRIMARY KEY  (`id`)
    ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=6 ;
      

  4.   

    Mysql 的库,表,字段都可以指定字符集,查询时指定的字符集要和创建时一致。
    我正在做这方面。使用odbc api,都是用的英文,没有中文,比你幸运多了。
      

  5.   

    在执行插入之前运行下面的语句试一试:set character_set_results=gb2312;