大虾帮忙!在edit控件中录入了50个字符,可是保存后就截成20个字符了? 因为你的数据库字段长呀为char(20) 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 你是不是在 TTable 或TQuery中加入T...Field定义 把你dataset的那个field删除,再重新加入就可以了。 請查看後臺数据库字段长是否為char(50)肯定是沒有修改掉你的賦值語句是不是直接把Edit1.Text賦過去的呢?有沒有中間變量 to foreveryday007:是的,是char(50),我的赋值语句是: FieldByName('key').AsString := edit_key.Text;to tong_jin:已经按你的方法做过,但是无效。:(to zyj320621:没有加入TField定义。 真的很奇怪:你跟蹤到這個地方,看看 edit_key.Text是多少FieldByName('key').AsString := edit_key.Text;執行完這句後,再看看QUERY1.FieldByName('key').AsString 為多少(不知道你是不是QUERY1) 将数据表中由20该为50后,一定要对Table或Query的Key这个字段的长度做相应更改 to foreveryday: edit_key的内容是正常的,五十个字符, 但是保存后取表中的内容是截断的,只有二十个字符。 五十个字符,对印汉字只能输入25个,如果你要输入50个汉字,就在数据库里char(100) to seasecond:在哪个属性里改呀? 这个问题也要拿上来讨论,建议你将有关控件删掉重加 这里人挺多的呀,有没有人对SAPI了解呢,小弟对SDK51不太懂,关于如何操作ACTIVEVOICEPROJECTLib_TLB中的过程,请高手指教 to shsunb:大兄弟,你说的也不对呀!我查了一下,table控件中的FieldDefs属性中,选中key字段后,将datatype 随意改一下,再恢复成fstring,屏幕上r size属性处显示的是“20”,!!!,为什么?后台的确改成了50呀!问题不在于edit处,而是数据库字段的长度更改后,尤其是加长后,前端数据库控件的更新如何同步? 你在FieldDefs属性中将这个字段删除,然后在添加一遍,就会改过来了,如果你要输入50个汉字,就在数据库里char(100) 给你答案: 我刚测试过,窗体上有如下控件:ADOConnection1、ADOTable1、DataSource1、DBEdit1,其他不要多说,双击ADOTable1选ADDALLFIELDS,比如有字段长为10,DBEdit1字段设置为该字段,运行只能输入10 双击ADOTable1,删除该字段,再ADD FIELD,重新加入,运行工程就可改变过来,OK?ANY MORE? to jyqkr:按你的方法做了,添加key时,size处还是顽固地显示“20”, 手工改成50后,前端的50个字符照旧截成20个字符。 检查是否是有另一个TABLE控件! 重新将前端数据显示控件如dbedit,或dbgrid和数据库中的字段设置一下.也可以再添加一个dbedit,将他与key绑定。试一下。 手工改当然不行,拿你的数据库里字段长度就是20,现改数据库字段(50),然后再在FieldDefs属性中将这个字段删除,然后在添加一遍,就会改过来了 各位老大: 还是不中啊! to jyqkr:先删除KEY,再重新添加KEY的SIZE处还显示的是“20” to shsunb:edit没有问题的,showmessage显示的是50个字符串。 有别的talbe控件呀。 to goldvale: 试了一下,新建一个工程,KEY的size是50了,看来要解决这个问题,非要把table控件删了,重新建不可,表里还建了查找字段呢。唉!有没有更好的方法解决呀?size的20究竟存到哪了?这个pascal,真让我搞不懂。 各位大虾: 我将table控件删除后重建已经解决问题了。 可惜的是,除了这个笨方法,还未发现有新的简单一些方法。(fielddef删掉再重建不起作用:)foreveryday007,goldvale: 感谢你们的回答给了我另外的灵感!感谢诸位!下午有事,稍后散分! 那是因为他将原先的字段先加入了table控件里,当你数据库字段改变时若没将原来的Table中的字段进行更新则会出现上述原因所以每次改变要更新一下.这不知算不算delphi的bug,呵呵呵 你把Project关掉再打开就行了,错误的信息放在本地缓存没自动刷新。 开机启动的程序有时会出现无法创建托盘图标的错误 多线程使CPU耗掉了100%!!! 想做个好看的界面 寻找能显示gif格式的OpenPictureDialog类的控件 各位知道大庆怎么样吗?要到那去了,郁闷:( a表里面有id字段和name字段是对应的,我在edit1填写id,然后怎样提取对应的name并赋值给edit.text ole 位操作的结果和我期望的不一样 Installshield 12/14 不包括BDE?? 如果用int 3取得0级特权? 如何在数据库应用程序运行时获得系统当前时间? 怎样在Delphi环境下调用一个具有窗体的DLL文件
肯定是沒有修改掉
你的賦值語句是不是直接把Edit1.Text賦過去的呢?
有沒有中間變量
FieldByName('key').AsString := edit_key.Text;to tong_jin:已经按你的方法做过,但是无效。:(to zyj320621:没有加入TField定义。
你跟蹤到這個地方,看看 edit_key.Text是多少
FieldByName('key').AsString := edit_key.Text;
執行完這句後,再看看
QUERY1.FieldByName('key').AsString 為多少(不知道你是不是QUERY1)
edit_key的内容是正常的,五十个字符,
但是保存后取表中的内容是截断的,只有二十个字符。
char(100)
这里人挺多的呀,有没有人对SAPI了解呢,小弟对SDK51不太懂,关于如何操作ACTIVEVOICEPROJECTLib_TLB中的过程,请高手指教
我查了一下,table控件中的FieldDefs属性中,选中key字段后,将datatype 随意改一下,再恢复成fstring,屏幕上r size属性处显示的是“20”,!!!,为什么?后台的确改成了50呀!问题不在于edit处,而是数据库字段的长度更改后,尤其是加长后,前端数据库控件的更新如何同步?
如果你要输入50个汉字,就在数据库里
char(100)
我刚测试过,窗体上有如下控件:ADOConnection1、ADOTable1、DataSource1、DBEdit1,其他不要多说,双击ADOTable1选ADDALLFIELDS,比如有字段长为10,DBEdit1字段设置为该字段,运行只能输入10
双击ADOTable1,删除该字段,再ADD FIELD,重新加入,运行工程就可改变过来,OK?ANY MORE?
手工改成50后,前端的50个字符照旧截成20个字符。
在FieldDefs属性中将这个字段删除,然后在添加一遍,就会改过来了
还是不中啊!
to jyqkr:先删除KEY,再重新添加KEY的SIZE处还显示的是“20”
to shsunb:edit没有问题的,showmessage显示的是50个字符串。
有别的talbe控件呀。
试了一下,新建一个工程,KEY的size是50了,看来要解决这个问题,非要把table控件删了,重新建不可,表里还建了查找字段呢。唉!有没有更好的方法解决呀?size的20究竟存到哪了?这个pascal,真让我搞不懂。
我将table控件删除后重建已经解决问题了。
可惜的是,除了这个笨方法,还未发现有新的简单一些方法。(fielddef删掉再重建不起作用:)foreveryday007,goldvale: 感谢你们的回答给了我另外的灵感!感谢诸位!下午有事,稍后散分!