在Query Analyzer下运行结果正确,你可以查看每一次query1.Open的结果,
问题可能是你程序结构错误引起的。
根据我的理解,我想是这样的,请试试:
for k:=0 to listbox2.Count-1 do
begin
table2.Append;
table2.FieldByName('名称').Value:=listbox2.Items[k];
for i:=0 to listbox3.count-1 do
begin
query1.SQL.Clear;
query1.SQL.Add('SELECT count(*) as newf from '+tab+' where ('+trim (edit2.Text)+' like '+''' '+'%'+trim(listbox3.Items[i])+'%'+''' '+') and ('+trim(edit1.Text)+' like '+''' '+'%'+trim(listbox2.Items[k])+'%'+''' '+')');
query1.Prepare;
query1.Open;
table2.Append;
table2.FieldByName('名称').Value:=listbox2.Items[k];
table2.FieldByName(listbox3.Items[i]).Value:=query1.Fields.Fields[0].Value;
table2.Post;
listbox4.Items.Add(query1.Fields.Fields[0].Value);
end;
end;
问题可能是你程序结构错误引起的。
根据我的理解,我想是这样的,请试试:
for k:=0 to listbox2.Count-1 do
begin
table2.Append;
table2.FieldByName('名称').Value:=listbox2.Items[k];
for i:=0 to listbox3.count-1 do
begin
query1.SQL.Clear;
query1.SQL.Add('SELECT count(*) as newf from '+tab+' where ('+trim (edit2.Text)+' like '+''' '+'%'+trim(listbox3.Items[i])+'%'+''' '+') and ('+trim(edit1.Text)+' like '+''' '+'%'+trim(listbox2.Items[k])+'%'+''' '+')');
query1.Prepare;
query1.Open;
table2.Append;
table2.FieldByName('名称').Value:=listbox2.Items[k];
table2.FieldByName(listbox3.Items[i]).Value:=query1.Fields.Fields[0].Value;
table2.Post;
listbox4.Items.Add(query1.Fields.Fields[0].Value);
end;
end;
我都试了可统计也还是0,怎么办,大家帮想想啊。
改成: Table2.ApplyUpdates;
Table2.CommitUpDates;