I Can Do

移动互联网-观察与产品设计
  首页  :: 新随笔  :: 订阅 订阅  :: 管理

如题: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个字段来进行数据汇总。