数据库中每口井有一个字段名成是深度,为了画图需要,深度之间的间隔若是超过0.3就要在上一个深度值下面插入一新列,其中深度=上一口井的深度+ 0.3 例如上一个深度值为 1005.6 下一个深度值为1006.9 那么在两个记录之间要插入1005.9,这个值的纪录 除了深度值与上一个记录不同之外其余全为上一条记录 这个功能我已经实现 程序如下:但是如何在最后一条记录后面插入一条 我没有实现 请大家指点一下 在那里改可以在最后一条后面也增加一个记录
procedure TForm1.Button1Click(Sender: TObject);
var
sflat:double;
a,b,c,d:string;
i,j:integer;
begin
with adoquery1 do
begin
Close;
SQL.Clear;
SQL.Add('select * from aaa where jh='''+edit1.text+''' order by gwjs asc');
open;
first;
j:=0; //用来计算跳转次数
for i:=0 to adoquery1.RecordCount-1 do
begin
a:=fieldbyname('jh').AsString;
b:=fieldbyname('ypwz').AsString;
c:=fieldbyname('cw').AsString;
d:=fieldbyname('ch').AsString;
sflat:=fieldbyname('gwjs').AsFloat;
next;
if fieldbyname('gwjs').AsFloat-sflat>0.3 then
begin
adoquery1.Insert;
adoquery1.FieldByName('jh').AsString:=a;
adoquery1.FieldByName('ypwz').AsString:=b;
adoquery1.FieldByName('cw').AsString:=c;
adoquery1.FieldByName('ch').AsString:=d;
adoquery1.FieldByName('gwjs').AsString:=floattostr(sflat+0.3); adoquery1.post; //到最后一条
adoquery1.First;
j:=j+1;
showmessage(inttostr(j));
adoquery1.MoveBy(j);
end; end;end;
procedure TForm1.Button1Click(Sender: TObject);
var
sflat:double;
a,b,c,d:string;
i,j:integer;
begin
with adoquery1 do
begin
Close;
SQL.Clear;
SQL.Add('select * from aaa where jh='''+edit1.text+''' order by gwjs asc');
open;
first;
j:=0; //用来计算跳转次数
for i:=0 to adoquery1.RecordCount-1 do
begin
a:=fieldbyname('jh').AsString;
b:=fieldbyname('ypwz').AsString;
c:=fieldbyname('cw').AsString;
d:=fieldbyname('ch').AsString;
sflat:=fieldbyname('gwjs').AsFloat;
next;
if fieldbyname('gwjs').AsFloat-sflat>0.3 then
begin
adoquery1.Insert;
adoquery1.FieldByName('jh').AsString:=a;
adoquery1.FieldByName('ypwz').AsString:=b;
adoquery1.FieldByName('cw').AsString:=c;
adoquery1.FieldByName('ch').AsString:=d;
adoquery1.FieldByName('gwjs').AsString:=floattostr(sflat+0.3); adoquery1.post; //到最后一条
adoquery1.First;
j:=j+1;
showmessage(inttostr(j));
adoquery1.MoveBy(j);
end; end;end;
adoquery1.Append; 是在记录未尾添加记录