菜鸟想问我有一个table控件,已经连上了数据库,如何的到'价格'这个字段的最大的值?菜鸟只会用query控件做,请问table控件本身有这个属性吗?(50分)

  • 主题发起人 wanglongb
  • 开始时间
W

wanglongb

Unregistered / Unconfirmed
GUEST, unregistred user!
菜鸟想问我有一个table控件,已经连上了数据库,如何的到价格这个字段的最大的值?菜鸟只会用query控件做,请问table控件本身有这个属性吗?
 
用 query 是合适的。
用 Table 只能逐条比较扫描
 
table.indexfieldname := '价格';
table.last;
 
var
Max:integer;

while not Table1.Eof do
begin
if Table1.fieldvalues['field1']>Max then
Max:=Table1.fieldvalues['field1'];
Tabel1.next;
end;
 
最好不要使用Table
速度慢
 
只能用Query写SQL做
用Table的话,只能逐条遍历了,这是效率最差的办法
最好不要这样写。
 
长学问啊,看来还得好好学SQL啊
 
table比query快
 
对不起,少写了一句:
如果你的表已经给'价格'字段建了索引,那么
table.indexfieldname := '价格';
table.last;
table.fieldbyname('价格').ascurrency就是你要的值;
如果没有,就建一个。(怎么建看帮助)
 
呵呵,你想搞什么呀,用table,不过也好,用你学的数据结构基本算法呀,二路查询
 
多人接受答案了。
 
哎,看到数据库就烦,真没意思!
 
也请问大家一个问题:怎么用adotable来修改多个纪录的同一个字段值。我用下边的方法:
adotable1.active:=true;
adotable1.First;
while not adotable1.Eof do
begin
if (ADOTable1.Locate('学习阶段;章节', VarArrayOf(['初一上册','第一章']), []))
then begin
adotable1.Edit;
adotable1.FieldByName('题目总数').AsInteger:=4;
adotable1.Post;
end;
adotable1.Next;
end;
adotable1.refresh;
就是这段代码,是个死循环。post之后指针总是指到表头。请问:如果就用adotable,这个程序到底该怎么写?
它实现的功能就是:把数据表中一些(不止一个)字段的值修改并保存
 
顶部