如何用SQL语句进行查询,但又不至于只显示查询到的那一条记录?(80分)

  • 主题发起人 主题发起人 snows
  • 开始时间 开始时间
S

snows

Unregistered / Unconfirmed
GUEST, unregistred user!
如何用SQL语句进行查询,但又不至于只显示查询到的那一条记录?
(另:为什么很多人不推荐用Tabel,DBGrid)
 
不明白你是什么意思
 
例如:
selecte * from temp temp
where no=2
就只显示no为2的记录,如何能让它移动no为2的记录而其它记录仍然显示?
 
snows:"如何能让它移动no为2的记录而其它记录仍然显示?"
什么意思?怎么看不懂?
 
TQuery构件使用SQL对数据库进行处理,它的功能很强大,但它不能象TTable构件
那样对记录进行操作移动,Snow的方法是不可取的。
若想实现记录移动的功能,您可以采用TClientDataSet构件。具体方法是:
TQuery构件→TProvider构件→TClientDataSet构件→TDataSource构件

传统的方法没有中间两个构件。你可以试一试。
 
KAO!
你那么用,还是用table+dbgrid好了:)

如果一定要解决:
with query1 do
if active then close;
sql.clear;
sql.add(select * from temp);
open;
locate(['no'],[2],..);//好久不LOCATE了,是这么用的?
end;
 
if you want do this
you 'd better use navigator
 
我另附的一个问题为什么没人回答?(和第一个问题无关)
为什么很多人不推荐用Table和DBGrid
 
用Table和DBGrid当然可以了,但用的多了你会发现,用Query比Table好多了,
用起来很自由!
 
用书签标实一下你要的特征记录,就不用使用SELECE * FROM ... WHERE ...
 

可以调用 Locate 函数在数据集中搜索特定的记录,
找到后,就把该记录变为当前记录,并返回 True 。

Var
LocateSuccess:Boolean;
SearchOption:TLocateOptions;
Begin
SearchOptions:=[ loPartialKey ];
LocateSuccess:=Table1.Locate('NO','2',SearchOptions);
End;

如果需要返回该记录中若干字段的值可以用 Lookup()函数。
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部