如何在数据库中任意查询。(50分)

  • 主题发起人 主题发起人 fee
  • 开始时间 开始时间
F

fee

Unregistered / Unconfirmed
GUEST, unregistred user!
我在学习编程时,想查询一记录,
我是这样想的,先建一索引,再查询。
但不知是否能给每一字段建索引。
我想应该可以,可在有的字段系统要提示出错。
无法建索引,why?
>_<~~~~!
 

You cannot create a secondary index on a memo, formatted memo,
binary, OLE, graphic, logical or bytes field.
--摘自Delphi help.
 
不建索引一样可以查询呀!
 
查询有多种方法:不必非要建索引
需要索引的FINDKEY
不须索引有 LOCATE
FILTER
ONFILTERRECORD
(FILTER或ONFILTERRECORD)+FINDNEXT
QUERY.SQL.TEXT:='...'
也可以自己逐条查询
 
查询为什么不用SQL语言,SQL可以实现相当复杂的查询
 
lss说的最全了:)把所有不用建索引的查询方法都讲了,厉害呀
 
加索引一定要分清主码和次码否则会越加越乱
 
最好还是用sql:-)
 
LSS说的对,我也是这样想的。
 
SQL SERVER查询时,对查询语句先分析,优先使用
带索引字段,可以加快查询速度,但同时会增加系统
开销,对于非海量纪录最好不要加太多索引。
 
还是用SQL语句吧
 
我觉得使用SQL查询语言实现复杂查询好
with Tquerydo
sql.clear;
sql.add("select * from Table);
open;
下次增加WHERE语句即可
where condition = condition
sql.close;
sql.add("where");
sql.open;
当然您得判断WHERE是否包含于SQL语句中,以决定增加WHERE 或 AND 或 OR 语句
 
这好说啊!在属性IndexFieldNames上,
你给它付哪个字段名,它就会用哪个来索引。
其它的我没试过,我一向用ClientDataSet,是非常好用的,
用它可在客户端用任意字段排序,用任意字段查询。
这是我以前写的一段程序。
if Application.MessageBox(p,'准备删除',292)=7 then
Exit;
cdsCustombases.IndexFieldNames:='comdcode';
if cdsCustombases.FindKey([KeyCode]) then
cdsCustombases.Delete;
cdsCustombases.ApplyUpdates(0);
 
clientdataset 怎么用?
 
索引是什么?
关注!
 
接受答案了.
 
后退
顶部