用adoquery插入更新数据后,怎么中文的老是只显示前面一两个,有的还显示不出来,而英语多少都行啊,我的数据库是sql server 2000的,请问各位大侠怎么解决.

解决方案 »

  1.   

    1、首先确定表字段的长度是够的
    2、设置如:adoquery1.FieldByName('fieldName').Size
    3、如果上面两个都不行,那可能是SQL不支持中文
      

  2.   

    字段长度不是在数据库里设置的吗?直接在数据库里写中文都可以,可用adoquery插入更新数据就不行,难道没有谁遇到和我同样的问题?????解决不了就全部用英文好了^_^
      

  3.   

    首先,你要确保SQL SERVER7安装时所安装的字符集正确。否则,SQL SERVER 2000只有重新安装了。
    对于这个问题,我得出的结论是由于DELPHI7 和SQL SERVER 2000所采用的编码方式不相同。SQL SERVER 采用的是UNICODE编码方式,而DELPHI采用的是ANSI
    方式。所以在有汉字数据更新时,就会使得汉字更新不完全,这种情况一般发生存储过程中。
    所以在应用服务器的DATA MODULE 的存储过程的BeforeExecute事件中加入:
    procedure TAppServer.DSPStoredProcBeforeExecute(Sender: TObject;
      var OwnerData: OleVariant);
    begin
      ADOStoredProc1.Parameters.ParamByName('@UserName').Size := Length(ADOStoredProc1.Parameters.ParamByName('@UserName').Value)+1;
    end;
    这样就没问题了。
      

  4.   

    应用服务器在哪里啊,我只是在数据模块加入一个adoconnection控键而已,但找不到BeforeExecute事件,是不是要在数据模块中加入什么控键??能不能说详细一点,还有你上面的两行代码是不是直接抄就行了??万分感谢!!!
      

  5.   

    应用服务器在哪里啊,我只是在数据模块加入一个adoconnection控键而已,但找不到BeforeExecute事件,是不是要在数据模块中加入什么控键??能不能说详细一点,还有你上面的两行代码是不是直接抄就行了??万分感谢!!!
      

  6.   

    应用服务器在哪里啊,我只是在数据模块加入一个adoconnection控键而已,但找不到BeforeExecute事件,是不是要在数据模块中加入什么控键??能不能说详细一点,还有你上面的两行代码是不是直接抄就行了??万分感谢!!!