今天听说下面的这种写法
while not (qry.Eof and qry.Bof) do
beginend;
要比下面的这种写法严格,
while not qry.Eof do
beginend;可是我看不出严格在哪里,
哪位指点一下啊。
解决方案 »
- delphi如何实现只运行一个实例,且激活第一个实例中的某个窗体?
- 高手帮帮忙,小弟感激不尽!!!!急急急急,在线等
- 请教一个IcmpSendEcho的问题
- 请问关于ADOQuery的一个问题! 急!!!
- 在DBGrid中的下拉列表,如何实现EXCEL中的下拉表中的过滤功能...急
- delphi6中如何得到本机IP地址~~~???在先等!
- 在quickreport中动态创建QRExpr
- 在DELPHI程序中加入背景音乐,MP3的音乐或是FLASH音乐。程序执行时就可以听到给定的MP3音乐,可执行的EXE文件中含有MP3音乐。就像在DELPH
- 为啥同一段代码 Delphi比VB慢很多
- 求!
- 阻塞式的INDY如何解决线程关闭超时程序无法退出???
- delphi程序员薪水大揭秘!!!!!!!
如果是依次读取数据集中的记录,
while not (qry.Eof and qry.Bof) do
beginend;
的用法是错误的。
如果是判断qry中是否有记录可以使用
if not (qry.Eof and qry.Bof) then //表示qry数据集中有记录。如果是依次读取数据集中的记录:
qry.First;
while not qry.Eof do
begin
s:=qry.fieldbyname('sss').asstring;
qry.next;
end;
或者(从最后的记录往前读取):
qry.last;
while not qry.Bof do
begin
s:=qry.fieldbyname('sss').asstring;
qry.Prior;
end;
感觉似乎用
while not (qry.Eof and qry.Bof) do
beginend;
是不是好一点呢
为什依次读取数据集中的记录时
while not (qry.Eof and qry.Bof) do
beginend;
的用法是错误的?我觉得
while not (qry.Eof and qry.Bof) do
和
while not qry.Eof do
没有区别的啊。
beginend;
依次读取数据集中的记录一定是错的。EOF指数据指针已经出了最后一条记录。BOF指数据指针已经出了第一条记录。你说这样还可以依次取得数据指针里的记录吗?
只能是
query1.first;
while not query1.eof do
begin
...
query1.next;
end;
或
query1.last;
while not query1.bof do
begin
...
query.piror;
end;
not (qry.Eof and qry.Bof)<=>(not qry.Eof) or (not qry.Bof)这样一看,这么写是有问题的如果你在开始的时候就使用了qry.first,那岂不是不循环了推荐的写法还是
qry.First;
while not qry.Eof do
//
qry.Next;