解决delphi的 dbgrid在读取access文本型字段显示TWideMemoField的问题
Posted on 2011-08-15 16:26 Shine`Lee 阅读(930) 评论(0) 编辑 收藏 举报如题:delphi 的dbgrid在读取access文本型字段会显示TWideMemoField。
这个问题是由数据类型引出, delphi的内置机制处理,所以解决问题方法有三种
1,换一个控件,可以读取文本字段的,本文不作考虑。
2,网上有个方法是说修改settext事件,给网格重新赋值,简单测试后无果,本人对 delphi的确是半瓶子醋:晃荡。
3,本人测试有效的方法就是修改adoquery。
双击adoquery控件,弹出字段操作窗体,新加一个自定义字段如 memo2.(原始memo 字段本文假定为memo)。
procedure TSendList.ADOQuery2CalcFields(DataSet: TDataSet); begin ADOQuery2.FieldByName('sendMsg2').AsString:= ADOQuery2.FieldByName('sendMsg').AsString; end;
如上代码所示,在adoquery 的calcfieds代码给新建的字段赋值。
在 dbgrid 的cloums属性里选择显示新加的字段memo2。
如此即可OK。
其实以上解决思路在其他的开发环境里基本也同样适用。在你的数据源的字段列表里如果无法满足你的实际要求,那么就自定义添加一个字段来显示。引申开来,比如说
本行数据显示的是1到12月份的每个月销量,那么我们可以做出第13个字段来进行数据汇总。