with xszp5_sql do
begin
begin
close();
SQL.Clear;
SQL.text:='select * from sqfy';
open;
end;
if xszp5_sql.RecordCount<>0 then
begin
for i:=1 to xszp5_sql.RecordCount do
begin
xszp5_sql.RecNo:=i;
if trim(xszp5_sql.FieldByName('guig').AsString)='YSP-5' then
edit1.text:=trim(xszp5_sql.FieldByName('sl0').AsString);
if trim(xszp5_sql.FieldByName('guig').AsString)='YSP-10' then
edit2.text:=trim(xszp5_sql.FieldByName('sl0').AsString);
end数据库查明明有两条件记录guig 字段分别为 YSP-5和YSP-10 但就认一条记录,只填S10在edit1
edit2从不填有数据,是循环不对吗????
begin
begin
close();
SQL.Clear;
SQL.text:='select * from sqfy';
open;
end;
if xszp5_sql.RecordCount<>0 then
begin
for i:=1 to xszp5_sql.RecordCount do
begin
xszp5_sql.RecNo:=i;
if trim(xszp5_sql.FieldByName('guig').AsString)='YSP-5' then
edit1.text:=trim(xszp5_sql.FieldByName('sl0').AsString);
if trim(xszp5_sql.FieldByName('guig').AsString)='YSP-10' then
edit2.text:=trim(xszp5_sql.FieldByName('sl0').AsString);
end数据库查明明有两条件记录guig 字段分别为 YSP-5和YSP-10 但就认一条记录,只填S10在edit1
edit2从不填有数据,是循环不对吗????
begin
first; //定位到记录第一条
for i:=1 to xszp5_sql.RecordCount do
begin
xszp5_sql.RecNo:=i;
if trim(xszp5_sql.FieldByName('guig').AsString)='YSP-5' then
edit1.text:=trim(xszp5_sql.FieldByName('sl0').AsString);
if trim(xszp5_sql.FieldByName('guig').AsString)='YSP-10' then
edit2.text:=trim(xszp5_sql.FieldByName('sl0').AsString);
next; //下一条
end
with xszp5_sql do
begin
begin
close();
SQL.Clear;
SQL.text:='select * from sqfy';
open;
end;
if xszp5_sql.RecordCount <>0 then
begin
// for i:=1 to xszp5_sql.RecordCount do -
while not Eof do // +
begin
//xszp5_sql.RecNo:=i; -
if trim(xszp5_sql.FieldByName('guig').AsString)='YSP-5' then
edit1.text:=trim(xszp5_sql.FieldByName('sl0').AsString);
if trim(xszp5_sql.FieldByName('guig').AsString)='YSP-10' then
edit2.text:=trim(xszp5_sql.FieldByName('sl0').AsString);
Next; //+
end;
end;
end;
用RecordCount循环很不准确。
2楼tpcnyou说的相当的好。
with xszp5_sql do
begin
close();
SQL.Clear;
SQL.text:='select * from sqfy';
open;
First;
end; if xszp5_sql.RecordCount <>0 then
begin
while not xszp5_sql.eof do
begin
//xszp5_sql.RecNo:=i;
if trim(xszp5_sql.FieldByName('guig').AsString)='YSP-5' then
edit1.text:=trim(xszp5_sql.FieldByName('sl0').AsString); if trim(xszp5_sql.FieldByName('guig').AsString)='YSP-10' then
edit2.text:=trim(xszp5_sql.FieldByName('sl0').AsString);
next;
end;
end;
begin
close();
SQL.text:='select * from sqfy';
open;
while not eof do
begin
xszp5_sql.RecNo:=i;
if trim(xszp5_sql.FieldByName('guig').AsString)='YSP-5' then
edit1.text:=trim(xszp5_sql.FieldByName('sl0').AsString);
if trim(xszp5_sql.FieldByName('guig').AsString)='YSP-10' then
edit2.text:=trim(xszp5_sql.FieldByName('sl0').AsString);
next;
end;
end;