新建一个应用程序,弄几个 DBEdit ,设字体为中文宋体5号,连上数据库,运行。
如果统计DBEdit中的字符个数,或进行其它应用的话,一个汉字占2个字符。
但我以前弄的一个程序,DBEdit中的汉字,一个汉字只占1个字符(字体也是中文宋体5号)。
我比较了现在临时的DBEdit和以前的DBEdit的设置,基本一模一样,连的数据库、数据表也一样。
百思不得其解,请大侠指点。谢谢!!

解决方案 »

  1.   

    你两次都用Delphi?他们是不是不同版本?
    如果是,那么一次用的是比较旧的,另一次用的是要新得多的版本?
      

  2.   

    都是D7啊。旧版本和新版本中DBEdit的汉字占位有什么区别?以前好象用的是专业版的,现在用的是企业版的。并且这个企业版想建几个“标准动作”都提示错误。
      

  3.   

    关键在于Unicode的概念。
    在没有使用Unicode以前,一个汉字是2个字符;
    使用Unicode,一个汉字是1个字符。都是D7理论上应该都不是Unicode,
    理论上都是2个字符;
    不过,由于ADO兼容Unicode,不确定若用ADO去算会算几个字符。哈哈,说到底,我还是不明白你都用D7为什么会算出1个字符。
      

  4.   

    你若定义WideString,汉字将只占1个字符长
      

  5.   

    只知道delphi 用length进行统计,一个汉字长度为2,在sql中用len,一个汉字长度为1
      

  6.   

    我在单位用Edit,设maxlength=5,能输入5个汉字。
    刚在家里一试,只能输入2个汉字,用的是一个D7版本,真是奇怪。
      

  7.   

    觉得跟SQL server的字符集有关。字符集有不同的字符编码归属