因为你的数据库字段长呀为char(20)

解决方案 »

  1.   

    你是不是在 TTable 或TQuery中加入T...Field定义
      

  2.   

    把你dataset的那个field删除,再重新加入就可以了。
      

  3.   

    請查看後臺数据库字段长是否為char(50)
    肯定是沒有修改掉
    你的賦值語句是不是直接把Edit1.Text賦過去的呢?
    有沒有中間變量
      

  4.   

    to foreveryday007:是的,是char(50),我的赋值语句是:
                      FieldByName('key').AsString := edit_key.Text;to tong_jin:已经按你的方法做过,但是无效。:(to zyj320621:没有加入TField定义。
      

  5.   

    真的很奇怪:
    你跟蹤到這個地方,看看 edit_key.Text是多少
    FieldByName('key').AsString := edit_key.Text;
    執行完這句後,再看看
    QUERY1.FieldByName('key').AsString 為多少(不知道你是不是QUERY1)
      

  6.   

    将数据表中由20该为50后,一定要对Table或Query的Key这个字段的长度做相应更改
      

  7.   

    to foreveryday:
       edit_key的内容是正常的,五十个字符,
        但是保存后取表中的内容是截断的,只有二十个字符。
      

  8.   

    五十个字符,对印汉字只能输入25个,如果你要输入50个汉字,就在数据库里
    char(100)
      

  9.   

    to seasecond:在哪个属性里改呀?
      

  10.   

    这个问题也要拿上来讨论,建议你将有关控件删掉重加
      这里人挺多的呀,有没有人对SAPI了解呢,小弟对SDK51不太懂,关于如何操作ACTIVEVOICEPROJECTLib_TLB中的过程,请高手指教
      

  11.   

    to shsunb:大兄弟,你说的也不对呀!
    我查了一下,table控件中的FieldDefs属性中,选中key字段后,将datatype 随意改一下,再恢复成fstring,屏幕上r size属性处显示的是“20”,!!!,为什么?后台的确改成了50呀!问题不在于edit处,而是数据库字段的长度更改后,尤其是加长后,前端数据库控件的更新如何同步?
      

  12.   

    你在FieldDefs属性中将这个字段删除,然后在添加一遍,就会改过来了,
    如果你要输入50个汉字,就在数据库里
    char(100)
      

  13.   

    给你答案:
        我刚测试过,窗体上有如下控件:ADOConnection1、ADOTable1、DataSource1、DBEdit1,其他不要多说,双击ADOTable1选ADDALLFIELDS,比如有字段长为10,DBEdit1字段设置为该字段,运行只能输入10
        双击ADOTable1,删除该字段,再ADD FIELD,重新加入,运行工程就可改变过来,OK?ANY MORE?
      

  14.   

    to  jyqkr:按你的方法做了,添加key时,size处还是顽固地显示“20”,
              手工改成50后,前端的50个字符照旧截成20个字符。
      

  15.   

    检查是否是有另一个TABLE控件!
      

  16.   

    重新将前端数据显示控件如dbedit,或dbgrid和数据库中的字段设置一下.也可以再添加一个dbedit,将他与key绑定。试一下。
      

  17.   

    手工改当然不行,拿你的数据库里字段长度就是20,现改数据库字段(50),然后再
    在FieldDefs属性中将这个字段删除,然后在添加一遍,就会改过来了
      

  18.   

    各位老大:
        还是不中啊!
        to jyqkr:先删除KEY,再重新添加KEY的SIZE处还显示的是“20”
        to shsunb:edit没有问题的,showmessage显示的是50个字符串。
                  有别的talbe控件呀。
      

  19.   

    to goldvale:
       试了一下,新建一个工程,KEY的size是50了,看来要解决这个问题,非要把table控件删了,重新建不可,表里还建了查找字段呢。唉!有没有更好的方法解决呀?size的20究竟存到哪了?这个pascal,真让我搞不懂。
      

  20.   

    各位大虾:
        我将table控件删除后重建已经解决问题了。
        可惜的是,除了这个笨方法,还未发现有新的简单一些方法。(fielddef删掉再重建不起作用:)foreveryday007,goldvale: 感谢你们的回答给了我另外的灵感!感谢诸位!下午有事,稍后散分!
      

  21.   

    那是因为他将原先的字段先加入了table控件里,当你数据库字段改变时若没将原来的Table中的字段进行更新则会出现上述原因所以每次改变要更新一下.这不知算不算delphi的bug,呵呵呵
      

  22.   

    你把Project关掉再打开就行了,错误的信息放在本地缓存没自动刷新。