unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ADODB, DB, Grids, DBGrids;type TForm1 = class(TForm) ADOConnection1: TADOConnection; Button1: TButton; DBGrid1: TDBGrid; DataSource1: TDataSource; Button2: TButton; Button3: TButton; ADODataSet1: TADODataSet; procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); private { Private declarations } public i:integer; max:integer; mix:integer; end;var Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject); begin ADOConnection1.ConnectionString:='Provider=SQLOLEDB.1;Password=zdq;Persist Security Info=True;User ID=sa;Initial Catalog=zdq'; max:=0; mix:=0; end;procedure TForm1.Button1Click(Sender: TObject); begin ADODataSet1.Close; ADODataSet1.CommandText:='select * from abc'; ADODataSet1.Open; end;procedure TForm1.Button2Click(Sender: TObject);begin max:=0; if mix=0 then begin ADODataSet1.Close; ADODataSet1.CommandText:='SELECT TOP 30 * FROM abc ORDER BY id '; ADODataSet1.Open; end else begin ADODataSet1.Close; ADODataSet1.CommandText:='SELECT TOP 30 * FROM abc WHERE id <='+inttostr(mix)+' ORDER BY id desc'; ADODataSet1.Open; end;{while (not ADODataSet1.eof) and (not ADODataSet1.isempty) do begin if ADODataSet1.FieldValues['id']>max then begin max:=ADODataSet1.FieldValues['id'] end; ADODataSet1.next; end; } while (not ADODataSet1.eof) and (not ADODataSet1.isempty) do begin if ADODataSet1.FieldValues['id']<mix then begin mix:=ADODataSet1.FieldValues['id'] end; ADODataSet1.next; end; end;procedure TForm1.Button3Click(Sender: TObject); begin ADODataSet1.Close; //adodataset1.CommandText:='SELECT TOP 30 * FROM abc WHERE id >'+edit2.Text+' ORDER BY id'; ADODataSet1.CommandText:='SELECT TOP 30 * FROM abc WHERE id >'+inttostr(max)+' ORDER BY id'; ADODataSet1.Open; while (not ADODataSet1.eof) and (not ADODataSet1.isempty) do begin if ADODataSet1.FieldValues['id']>max then begin max:=ADODataSet1.FieldValues['id'] end; ADODataSet1.next; end; mix:=max-30; {while (not ADODataSet1.eof) and (not ADODataSet1.isempty) do begin if ADODataSet1.FieldValues['id']>mix then begin mix:=ADODataSet1.FieldValues['id'] end; ADODataSet1.next; end; showmessage(inttostr(mix))} end;end.
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ADODB, DB, Grids, DBGrids;type
TForm1 = class(TForm)
ADOConnection1: TADOConnection;
Button1: TButton;
DBGrid1: TDBGrid;
DataSource1: TDataSource;
Button2: TButton;
Button3: TButton;
ADODataSet1: TADODataSet;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
private
{ Private declarations }
public
i:integer;
max:integer;
mix:integer;
end;var
Form1: TForm1;implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);
begin
ADOConnection1.ConnectionString:='Provider=SQLOLEDB.1;Password=zdq;Persist Security Info=True;User ID=sa;Initial Catalog=zdq';
max:=0;
mix:=0;
end;procedure TForm1.Button1Click(Sender: TObject);
begin
ADODataSet1.Close;
ADODataSet1.CommandText:='select * from abc';
ADODataSet1.Open;
end;procedure TForm1.Button2Click(Sender: TObject);begin
max:=0;
if mix=0 then
begin
ADODataSet1.Close;
ADODataSet1.CommandText:='SELECT TOP 30 * FROM abc ORDER BY id ';
ADODataSet1.Open;
end
else
begin
ADODataSet1.Close;
ADODataSet1.CommandText:='SELECT TOP 30 * FROM abc WHERE id <='+inttostr(mix)+' ORDER BY id desc';
ADODataSet1.Open;
end;{while (not ADODataSet1.eof) and (not ADODataSet1.isempty) do
begin
if ADODataSet1.FieldValues['id']>max then
begin
max:=ADODataSet1.FieldValues['id']
end;
ADODataSet1.next;
end; } while (not ADODataSet1.eof) and (not ADODataSet1.isempty) do
begin
if ADODataSet1.FieldValues['id']<mix then
begin
mix:=ADODataSet1.FieldValues['id']
end;
ADODataSet1.next;
end;
end;procedure TForm1.Button3Click(Sender: TObject);
begin
ADODataSet1.Close;
//adodataset1.CommandText:='SELECT TOP 30 * FROM abc WHERE id >'+edit2.Text+' ORDER BY id';
ADODataSet1.CommandText:='SELECT TOP 30 * FROM abc WHERE id >'+inttostr(max)+' ORDER BY id';
ADODataSet1.Open;
while (not ADODataSet1.eof) and (not ADODataSet1.isempty) do
begin
if ADODataSet1.FieldValues['id']>max then
begin
max:=ADODataSet1.FieldValues['id']
end;
ADODataSet1.next;
end;
mix:=max-30;
{while (not ADODataSet1.eof) and (not ADODataSet1.isempty) do
begin if ADODataSet1.FieldValues['id']>mix then
begin
mix:=ADODataSet1.FieldValues['id']
end;
ADODataSet1.next;
end;
showmessage(inttostr(mix))}
end;end.