⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 showdatafrm.pas

📁 domain3.2 SQL注入漏洞扫描 旁注 上传功能 数据库浏览
💻 PAS
字号:
{##########################################
         旁注入侵专用程序 3.0升级版
 ----------------------------------------
  模块:数据库浏览 - 显示详细记录
  描述:双击后显示详细的数据记录
  作者:2005.3.20日下午  明小子
##########################################}

unit ShowDataFrm;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, DBCtrls, ExtCtrls, ComCtrls, Buttons;

type
  TShowDataForm = class(TForm)
    SpeedButton1: TSpeedButton;
    Label1: TLabel;
    ListView1: TListView;
    Panel1: TPanel;
    btFirst: TSpeedButton;
    btPrior: TSpeedButton;
    btNext: TSpeedButton;
    btLast: TSpeedButton;
    btClose: TSpeedButton;
    btSave: TSpeedButton;
    Edit1: TEdit;
    DBMemo1: TDBMemo;
    StatusBar1: TStatusBar;
    procedure btFirstClick(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure btLastClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure btPriorClick(Sender: TObject);
    procedure btNextClick(Sender: TObject);
    procedure btCloseClick(Sender: TObject);
    procedure btSaveClick(Sender: TObject);
    procedure btSelectALLClick(Sender: TObject);
    procedure btCopyClick(Sender: TObject);
    procedure BTClearClick(Sender: TObject);
    procedure DBMemo1Change(Sender: TObject);
    procedure ListView1Click(Sender: TObject);
  private
    procedure ShowQueryData;
  public
    { Public declarations }
  end;

var
  ShowDataForm: TShowDataForm;

implementation

uses MainUnit;

{$R *.dfm}

procedure TShowDataForm.ShowQueryData;
var
  i: integer;
begin
  try
    listview1.Items.Clear; //先清空数据
  except
  end;
  for i := 0 to MainForm.ADOQuery1.FieldCount - 1 do
  begin
    with listview1.Items.Add do
    begin
      caption := MainForm.dbgrid1.Columns[i].FieldName; //得到表名
      subitems.Text := MainForm.DBGrid1.Columns.Grid.Fields[i].AsString; //得到记录
    end;
  end;
  Label1.Caption := '当前记录位置:' + inttostr(Mainform.ADOQuery1.RecordCount) + ' - ' + inttostr(Mainform.ADOQuery1.RecNo);
  if MainForm.ADOQuery1.RecordCount = 1 then
  begin
    btFirst.Enabled := False;
    btPrior.Enabled := False;
    btNext.Enabled := False;
    btLast.Enabled := False;
  end
  else
  begin
    btFirst.Enabled := True;
    btPrior.Enabled := True;
    btNext.Enabled := True;
    btLast.Enabled := True;
  end;

  if DBMemo1.Modified then //如果修改了内容,那么激活保存按钮
    btSave.Enabled := True
  else btSave.Enabled := False;
end;

procedure ShowQuery;
var
  i: integer;
begin
  for i := 0 to MainForm.ADOQuery1.FieldCount - 1 do
  begin
    with ShowDataForm.ListView1.Items.Add do
    begin
      Caption := MainForm.DBGrid1.Columns[i].FieldName; //得到表名
      Subitems.Text := MainForm.ADOQuery1.Fields[i].AsString;
    end;
  end;
end;

procedure TShowDataForm.btFirstClick(Sender: TObject);
begin
  try
    ListView1.Items.Clear; //先清空数据
  except
  end;
  DBMemo1.Clear; //清空内容
  MainForm.ADOQuery1.First;
  ShowQuery; //显示查询到的数据
  btPrior.Enabled := False;
  btFirst.Enabled := False;
  btNext.Enabled := True;
  btLast.Enabled := True;
  Label1.Caption := '当前记录位置:' + inttostr(Mainform.ADOQuery1.RecordCount) + ' - ' + inttostr(Mainform.ADOQuery1.RecNo);
end;

procedure TShowDataForm.SpeedButton1Click(Sender: TObject);
begin
  try
    Mainform.ADOQuery1.RecNo := strtoint(Edit1.text);
    Label1.Caption := '当前记录位置:' + inttostr(Mainform.ADOQuery1.RecordCount) + ' - ' + inttostr(Mainform.ADOQuery1.RecNo);
    try
      ListView1.Items.Clear;
    except
    end;
    DBMemo1.Clear;
    ShowQuery;
  except
  end;
end;

procedure TShowDataForm.btLastClick(Sender: TObject);
begin
  try
    ListView1.Items.Clear;
  except
  end;
  DBMemo1.Clear;
  MainForm.ADOQuery1.Last;
  ShowQuery;
  btNext.Enabled := False;
  btLast.Enabled := False;
  btPrior.Enabled := True;
  btFirst.Enabled := True;
  Label1.Caption := '当前记录位置:' + inttostr(Mainform.ADOQuery1.RecordCount) + ' - ' + inttostr(Mainform.ADOQuery1.RecNo);
end;

procedure TShowDataForm.FormCreate(Sender: TObject);
begin
  ShowDataForm.FormStyle := fsStayOnTop; //窗体置顶
end;

procedure TShowDataForm.FormShow(Sender: TObject);
begin
  ShowQueryData;
  DBMemo1.Clear;
end;

procedure NewData;
begin
  with ShowDataForm do
  begin
    if MainForm.ADOQuery1.Eof then //判断是否到了最下面
    begin
      btNext.Enabled := False;
      btLast.Enabled := False;
    end;
    btPrior.Enabled := True;
    btFirst.Enabled := True;
    Label1.Caption := '当前记录位置:' + inttostr(Mainform.ADOQuery1.RecordCount) + ' - ' + inttostr(Mainform.ADOQuery1.RecNo);
  end;
end;

procedure TShowDataForm.btPriorClick(Sender: TObject);
begin
  ListView1.Clear;
  DBMemo1.Clear;
  MainForm.ADOQuery1.Prior;
  ShowQuery;
  NewData;
end;

procedure TShowDataForm.btNextClick(Sender: TObject);
begin
  ListView1.Clear; //先清空数据
  DBMemo1.Clear; //清空内容
  MainForm.ADOQuery1.Next;
  ShowQuery; //显示查询到的数据
  NewData;
end;

procedure TShowDataForm.btCloseClick(Sender: TObject);
begin
  Close; //退出程序
end;

procedure TShowDataForm.btSaveClick(Sender: TObject);
begin
  try
    MainForm.ADOQuery1.Post;
  except
  end;
  try
    ShowQueryData;
  except
  end;
  ListView1.ItemIndex := ListView1.ItemIndex;
  StatusBar1.Panels[0].Text := '提示:修改的数据已成功保存到数据库!';
end;

procedure TShowDataForm.btSelectALLClick(Sender: TObject);
begin
  DBMemo1.SetFocus;
  DBMemo1.SelectAll;
end;

procedure TShowDataForm.btCopyClick(Sender: TObject);
begin
  DBMemo1.SelectAll;
  DBMemo1.CopyToClipboard;
end;

procedure TShowDataForm.BTClearClick(Sender: TObject);
begin
  DBMemo1.PasteFromClipboard;
end;

procedure TShowDataForm.DBMemo1Change(Sender: TObject);
begin
  BtSave.Enabled := True;
end;

procedure TShowDataForm.ListView1Click(Sender: TObject);
begin
  try
    DBMemo1.DataField := ListView1.Items[0].Caption;
    DBMemo1.DataField := ListView1.Items[ListView1.Itemindex].Caption;
  except
  end;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -