怎么设置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);
这个方法的确能够做。
不过我建议如果出现这种情况最好就不要使用数据感应控件了。