各位大大,我用Delphi7的ADO方式连接SQL SERVER2005时,发现,数据库中的表里有中文时,读出来能正常显示,但是如果在DBgrid写入中文提交时,写入数据库中的数据就成了乱码了。经检查发现与DBgrid无关,即使我通过SQL 插入语句,只要插入中文内容,都是乱码。我怀疑是不是ADO的连接参数有问题?救命啊。

解决方案 »

  1.   

    看看你sqlserver中你用的数据库选择的默认语言是中文简体吗
      

  2.   

    一般这样的问题跟数据库有关,看一下数据库的排序规则(Collection)和表的排序规则,是否是Chinese_PRC_CI_AS。
      

  3.   

    不是ado的问题,是你数据库使用unicode编码的问题吧
    看看数据库的字段是否nvchar,如果是的话需要使用unicode转换,Lz可以使用widstring来读取看看
    另外你的数据库是中文的还是英文恶毒,如果是英文的可以看看我以前的一个帖子 9L
    http://topic.csdn.net/u/20110906/11/12a81b63-3239-461d-a5c9-103e7d96a382.html 
      

  4.   

    检查一下数据库的排序规则(Collection)和表的排序规则是否是Chinese_PRC_AI_CS
      

  5.   

    另外如果各种尝试都失败,可以把字段改成varchar类型看看
      

  6.   

    哦,谢谢各位的点化,那个库是老外的数据库,我直接把数据库的排序规则改为Chinese_PRC_CI_AS就搞定了。