我的是英文操作系统,英文版SQL2000,当我insert一条数据到db时,会出现乱码,我在网上查寻,说是D6的ADODB.pas BUG,我按照几个方法都做了修改,但还是不行,有谁能帮忙?
以前在国内因为一直用中文版操作系统和中文版数据库,所以一直也没遇到这个问题,大家帮帮忙.

解决方案 »

  1.   

    我发现我的Dataset的Parameters里的DataType不能选择ftWideString.变成默认的ftFixedChar,奇怪
      

  2.   

    汉字乱码问题  笔者曾经在使用ADO向SQL Server 6.5中追加或修改数据后,发现查询出来的汉字都是乱码,最初以为是客户端的环境有问题,后来打开服务器端的数据库,发现其中的汉字也都是乱码,费了九牛二虎之力才找到原因:在追加和修改的过程中,ADO将字符进行了自动翻译(AutoTranslate),翻译后就成了乱码(Microsoft给我们开了一个“小小”的玩笑),解决的办法就是不让它乱翻译,具体操作如下:  如果ADO通过OLE DB直接连接到数据库,则在Connection的ConnectionString中加入字符串:AutoTranslate=False;  如果ADO通过ODBC连接到数据库,则在配置ODBC时,将“执行字符数据转换”一项的勾去掉。
      

  3.   

    我已把AutoTranslate=False;我debug发现,我的TADOQQuery的Parameter的DataType不能选择ftWideString,我
    ADOQuery.Parameters.ParamByName('ADDRESS1').DataType := ftWideString;
    没想到他尽然又自动变回ftFixedChar,肯定是这个原因导致乱码.
      

  4.   

    搞明白了,有文件需要更新,更新的文件是Adortl60.bpl,adortl60.map;
    是delphi ADO的一个BUG.