try
ADOQuery := TADOQuery.Create(self);
ADOQuery.Connection := MainForm.ADOConnection1;
with ADOQuery3 do begin
if Active then Close;
SQL.Clear;
SQL.Add('select * from saying_list where begin_time=:begin_time and end_time=:end_time' );
Parameters.ParamByName('begin_time').Value:=Items[i].SubItems.Strings[0];
Parameters.ParamByName('end_time').Value:=Items[i].SubItems.Strings[1];
open;
if not isempty then begin
Recordshow.Lines[0]:='呼叫:'+ADOQuery3.FieldbyName('phonenum').AsString;
Recordshow.Lines[1]:='用户名:'+ADOQuery3.FieldbyName('phonename').AsString;
Recordshow.Lines[2]:='起始时间:'+ADOQuery3.FieldbyName('begin_time').AsString;
Recordshow.Lines[3]:='结束时间:'+ADOQuery3.FieldbyName('end_time').AsString;
Recordshow.Lines[4]:='通话时长:'+ADOQuery3.FieldbyName('factlong').AsString; end;
end;
finally
ADOQuery.Destroy;
end;以上程序选出了一条指定记录,如何访问它的前一条或下一条呀,
ADOQuery := TADOQuery.Create(self);
ADOQuery.Connection := MainForm.ADOConnection1;
with ADOQuery3 do begin
if Active then Close;
SQL.Clear;
SQL.Add('select * from saying_list where begin_time=:begin_time and end_time=:end_time' );
Parameters.ParamByName('begin_time').Value:=Items[i].SubItems.Strings[0];
Parameters.ParamByName('end_time').Value:=Items[i].SubItems.Strings[1];
open;
if not isempty then begin
Recordshow.Lines[0]:='呼叫:'+ADOQuery3.FieldbyName('phonenum').AsString;
Recordshow.Lines[1]:='用户名:'+ADOQuery3.FieldbyName('phonename').AsString;
Recordshow.Lines[2]:='起始时间:'+ADOQuery3.FieldbyName('begin_time').AsString;
Recordshow.Lines[3]:='结束时间:'+ADOQuery3.FieldbyName('end_time').AsString;
Recordshow.Lines[4]:='通话时长:'+ADOQuery3.FieldbyName('factlong').AsString; end;
end;
finally
ADOQuery.Destroy;
end;以上程序选出了一条指定记录,如何访问它的前一条或下一条呀,
然后重新取值就可以了!
后面加上ADOQuery3.next
但ADOQuery3.FieldbyName('phonenum').AsString还是上一条记录的值
那我驶时songyanbin的方法
......
bm:=ADOQuery3.GetBookMark
ADOQuery3.next