【delphi开源代码栏目提醒】:网学会员为需要delphi开源代码的朋友们搜集整理了fPerfTest.pas相关资料,希望对各位网友有所帮助!
unit fPerfTest;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, ExtCtrls, DBCtrls, DB, ComCtrls, StdCtrls,
Buttons;
type
TfrmPerfMain = class(TForm)
dsData: TDataSource;
DBNavigator1: TDBNavigator;
DBGrid1: TDBGrid;
PageControl1: TPageControl;
pgLoops: TProgressBar;
tstDBExpress: TTabSheet;
tstBDE: TTabSheet;
tstIBX: TTabSheet;
edtDBXOpen: TLabeledEdit;
edtDBXAdd: TLabeledEdit;
edtDBXQuery: TLabeledEdit;
edtTestCount: TEdit;
Label1: TLabel;
edtPacketRecords: TLabeledEdit;
edtDBXNav: TLabeledEdit;
edtBDEOpen: TLabeledEdit;
edtBDEAdd: TLabeledEdit;
edtBDEQuery: TLabeledEdit;
edtBDENav: TLabeledEdit;
mmBDELog: TMemo;
mmIBXLog: TMemo;
edtIBONav: TLabeledEdit;
edtIBOOpen: TLabeledEdit;
edtIBOAdd: TLabeledEdit;
edtIBOQuery: TLabeledEdit;
mmDBXLog: TMemo;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
SpeedButton4: TSpeedButton;
SpeedButton5: TSpeedButton;
SpeedButton6: TSpeedButton;
SpeedButton7: TSpeedButton;
SpeedButton8: TSpeedButton;
SpeedButton9: TSpeedButton;
SpeedButton10: TSpeedButton;
SpeedButton11: TSpeedButton;
SpeedButton12: TSpeedButton;
edtDBXGetData: TLabeledEdit;
edtBDEGetData: TLabeledEdit;
edtIBOGetData: TLabeledEdit;
sbtnDBXGetData: TSpeedButton;
bbtnCloseDBX: TBitBtn;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
SpeedButton13: TSpeedButton;
TabSheet1: TTabSheet;
mmMonitor: TMemo;
BitBtn4: TBitBtn;
sbtnIBXGetData: TSpeedButton;
BitBtn5: TBitBtn;
BitBtn6: TBitBtn;
BitBtn7: TBitBtn;
LabeledEdit1: TLabeledEdit;
Button1: TButton;
Button2: TButton;
procedure SpeedButton1Click(Sender: TObject);
procedure sbtnDBXGetDataClick(Sender: TObject);
procedure bbtnCloseDBXClick(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure SpeedButton5Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure SpeedButton13Click(Sender: TObject);
procedure SpeedButton6Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure SpeedButton9Click(Sender: TObject);
procedure SpeedButton10Click(Sender: TObject);
procedure BitBtn5Click(Sender: TObject);
procedure BitBtn6Click(Sender: TObject);
procedure BitBtn7Click(Sender: TObject);
procedure sbtnIBXGetDataClick(Sender: TObject);
private
{ Private declarations }
lStart : Longint;
lEnd : Longint;
ILOOPS : Integer;
igRecords : Integer;
function GetID: Integer;
function GetName: String;
function GetPhone: String;
function GetAddress: String;
function GetSalary: Double;
protected
public
{ Public declarations }
procedure LogStartTime;
procedure LogEndTime;
procedure LogRunTime(amm : TMemo; const sMsg : String);
procedure LogMsg(amm : TMemo; const sMsg : String);
end;
var
frmPerfMain: TfrmPerfMain;
implementation
uses udmPerfTest, udmBDETest, udmIBXTest;
{$R *.dfm}
const
DELETEINDEX = 'drop index IDXLARGEDATASNAME';
DELETEPRIMARYINDEX = 'ALTER TABLE LARGEDATAS DROP CONSTRAINT PIDXLARGEDATASID';
ADDPRIMARYINDEX = ' ADD CONSTRAINT PIDXLARGEDATASID PRIMARY KEY (ID)';
ADDINDEX = 'create index IDXLARGEDATASNAME on LARGEDATAS (NAME)';
function TfrmPerfMain.GetID: Integer;
begin
Inc(igRecords);
Result := igRecords;
end;
function TfrmPerfMain.GetName: String;
var
iIndex: Integer;
begin
Result := '';
for iIndex := 1 to 10 do // Iterate
begin
Result := Result + chr(Ord('a') + random(26));
end; // for
end;
function TfrmPerfMain.GetPhone: String;
var
iIndex: Integer;
begin
Result := '';
for iIndex := 1 to 13 do // Iterate
begin
Result := Result + chr(Ord('0') + random(9));
end; // for
end;
function TfrmPerfMain.GetAddress: String;
var
iIndex: Integer;
begin
Result := '';
for iIndex := 1 to 60 do // Iterate
begin
Result := Result + chr(Ord('a') + random(26));
end; // for
end;
function TfrmPerfMain.GetSalary: Double;
begin
Result := random(9999999) / 100.0
end;
procedure TfrmPerfMain.LogEndTime;
begin
lEnd := GetTickCount;
end;
procedure TfrmPerfMain.LogMsg(amm : TMemo; const sMsg: String);
begin
amm.Lines.Add(sMsg);
end;
procedure TfrmPerfMain.LogRunTime(amm : TMemo; const sMsg : String);
var
sTime : String;
beg