(紧急)能不能在已经查询出来的recordset中添加一个字段并给予赋值? ( 积分: 100 )

  • 主题发起人 主题发起人 caina3
  • 开始时间 开始时间
C

caina3

Unregistered / Unconfirmed
GUEST, unregistred user!
具体要求是比如我用查询获得了下面的数据:
字段: id name a1 a2 a3
01 一 1 2 3
02 二 4 5 6
03 三 7 8 9
... ... ... ... ...
我现在需要在上面得到的recordset中添加一个字段aall
它的值为 a1*0.3+a2*0.6+a3*0.4

不知道delphi中是否可以实现这样的操作
紧急!
 
具体要求是比如我用查询获得了下面的数据:
字段: id name a1 a2 a3
01 一 1 2 3
02 二 4 5 6
03 三 7 8 9
... ... ... ... ...
我现在需要在上面得到的recordset中添加一个字段aall
它的值为 a1*0.3+a2*0.6+a3*0.4

不知道delphi中是否可以实现这样的操作
紧急!
 
在SQL中实现:
select *,a1*0.3+a2*0.6+a3*0.4 as aall from tabname
 
用Calculated 字段,在OnCalculate事件中写入
adoquery1aall.value;=adoquey1a1.value*0.3+adoquery1a2.value*0.6+adoquery1a3*0.4;
 
楼上两位已经讲了,要么用sql语句,要么用计算字段
 
不是很明白
Calculated字段如何设置?我没有发现OnCalculate事件
同时问一下,有adoquery1aall这种写法么?
sql语句的那种我知道怎么做。但是现在的情况是已经无法在那上面继续开刀写sql了。
 
呵呵,找到了,也想办法作了一些改动,眼看要成功了,
但是编译告诉我dataset not in edit or insert mode,请问怎么修改阿,
马上给分
 
晕没有处于edit和insert模式啊
要么query1.edit;
要么query1.insert;
然后post
 
adoquery1aall.value;=adoquey1a1.value*0.3+adoquery1a2.value*0.6+adoquery1a3*0.4;是指ado_baobiao.FieldByName('aall').value(略)么?
 
calcfield一定要在oncalcfield事件里面赋值。
 
我的用法是:
ado.Edit;
DataSet.FieldDefs.Add('总评', ftInteger, 0, False);//这里的dataset是ado
adoCalcFields(ado);
在procedure TForm1.adoCalcFields(DataSet: TDataSet);
中写下如下代码:
ado.FieldByName('总评').Value := ado.FieldByName('期中').Value;//为了测试,先显示出来再说

结果是告诉我说没有"总评"这个字段.
不知道是不是方式用错了?
 
大虾们,先别急着下班啊
问题紧急啊!
谢谢了![:(]
 
题中说了是delphi中实现,所以给这三人分,虽然最后用这个方法也没能实现我的实际的需求,但这三人教会了我多一种方式.谢谢!
 

Similar threads

D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
回复
0
查看
782
爱音乐的孩子是小白
I
回复
0
查看
680
import
I
后退
顶部