首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

如何设置adoquery的虚拟计算列

2012-03-27 
怎么设置adoquery的虚拟计算列?dbgrideh显示adoquery姓名 分数小张90小陈20我想在加一列,分数2分数2 通过

怎么设置adoquery的虚拟计算列?
dbgrideh显示adoquery
姓名 分数  
小张 90
小陈 20

我想在加一列,分数2
分数2 通过计算姓名GetMyFunc获得

我怎么在dbgrideh显示这三列呢?

sqlStr:='Select a.姓名,a.分数,'''' as 分数2 from [xs] a ';

ADOQuery1.Edit;
ADOQuery1.FieldByName('分数2).Visible:=True;
ADOQuery1.FieldByName('分数2').AsString:=GetMyFunc(ADOQuery1.FieldByName('姓名'));
ADOQuery1.Post;


这样提示不能编辑

[解决办法]
1.adoquery的sql属性添加好SQL语句,如: select * from xs
2.双击adoquery,右鍵add fields添加需要的列进来
3.右鍵再new field添加一列计算的,name随便填(比如XX),type选float,field type选calculated
4.adoquery的onCalcFields事件,写代码
DataSet.FieldByName('XX').AsFloat:=GetMyFunc(DataSet.FieldByName('姓名').AsString);

GetMyFunc返回什么类型,就添加什么类型类型字段

[解决办法]
1.adoquery的sql属性添加好SQL语句,如: select * from xs
2.双击adoquery,右鍵add fields添加需要的列进来
3.右鍵再new field添加一列计算的,name随便填(比如XX),type选float,field type选calculated
4.adoquery的onCalcFields事件,写代码
DataSet.FieldByName('XX').AsFloat:=GetMyFunc(DataSet.FieldByName('姓名').AsString);

这个方法的确能够做。
不过我建议如果出现这种情况最好就不要使用数据感应控件了。

热点排行