procedure TForm1.huanyishouClick(Sender: TObject);
var
i,item:TListitem;
intTmp,b: integer;
strTmp: string;
sURL,s,n,m: String;
str,str1:TStrings;
begin
i := ListView1.Selected;
if (i = nil) then exit;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * from 数据库 where 名称 =:aa');
ADOQuery1.Parameters.ParamByName('aa').Value:=listview1.Selected.SubItems[0];
ADOQuery1.Open;
if ADOQuery1.RecordCount<>0 then
begin
for b:=0 to ADOQuery1.RecordCount-1 do
begin
s:=listView1.Selected.Caption; //表中编号
m:=self.ADOQuery1.Fields[0].AsString;//当前编号
if s=m then//如果编号相同就跳过
begin
Self.ADOQuery1.Next;
end else
begin
item:=ListView1.Selected;
item.Caption:=ADOQuery1.Fields[0].value ;
item.SubItems[0]:=ADOQuery1.Fields[1].value;
item.SubItems[1]:=ADOQuery1.Fields[2].value;
item.SubItems[2]:=ADOQuery1.Fields[3].value;
item.SubItems[3]:=ADOQuery1.Fields[4].value;
item.SubItems[4]:=ADOQuery1.Fields[5].value;
item.SubItems[5]:=ADOQuery1.Fields[6].value
item.SubItems[6]:=ADOQuery1.Fields[8].value;
item.SubItems[7]:=ADOQuery1.Fields[6].value;
item.SubItems[8]:=ADOQuery1.Fields[9].value;
ADOQuery1.ExecSQL;
end;
end;
end;
end;
//这个循环有问题,如果ADOQuery1.RecordCount,也就是名称有8个,执行4次就不再执行了,少了一半
解决方案 »
- 请帮个忙,谢谢!在线等
- 奇怪,该条语句,在数据库里能直接执行,放在软件ado控件里报错
- 关于IDUDPSERVER,高手请进
- 如何更改文件夹的根目录信息和文件夹关联?
- 问大家一个问题?你们做程序时,用的第三方控件多不多(免费的)。
- 急需急需急需急需!!!!
- 为何我下载下来的delphi7没有Qreport这个组件呢?
- 怎样实现倒计时?急,在线等待!
- 这样对数据库进行处理
- 用webbrowser登录论坛,跳转到一个https页面,点按钮应该转到http页面,没反应
- 判断listview中是否有相同值
- 发送邮件 idsmtp、NMSMTP均失败(错误:不是 用户被锁定,就是 Authentication failed )
通常数据集的循环都是ADOQuery1.First;
while ADOQuery1.Eof do
begin
//这里写处理的代码
ADOQuery1.Next;
end;不管你SM的那个条件是否满足
ADOQuery1.Next;这一句应该是必须执行的,否则,很容易就死循环了。
还有,最后这句ADOQuery1.ExecSQL;
不知道是什么意义。按照你的意思,我修改了一下代码,你看看if ADOQuery1.RecordCount<>0 then
begin
ADOQuery1.First;
While not ADOQuery1.Eof do
begin
s := listView1.Selected.Caption; //表中编号
m := ADOQuery1.Fields[0].AsString;//当前编号
if s<>m then//如果编号不相同才进行处理
begin
item:=ListView1.Selected;
item.Caption:=ADOQuery1.Fields[0].value ;
item.SubItems[0]:=ADOQuery1.Fields[1].value;
item.SubItems[1]:=ADOQuery1.Fields[2].value;
item.SubItems[2]:=ADOQuery1.Fields[3].value;
item.SubItems[3]:=ADOQuery1.Fields[4].value;
item.SubItems[4]:=ADOQuery1.Fields[5].value;
item.SubItems[5]:=ADOQuery1.Fields[6].value
item.SubItems[6]:=ADOQuery1.Fields[8].value;
item.SubItems[7]:=ADOQuery1.Fields[6].value;
item.SubItems[8]:=ADOQuery1.Fields[9].value;
end;
ADOQuery1.Next; //这句话放在判断的外面,必须执行
end;
end;