📄 main.pas
字号:
// BDE
if cbBDE.Checked then begin
ResBDE := MasterDetailTest(BDEQuery, BDEQuery1, i*10);
Chart.Series[1].AddXY(i*10, ResBDE/1000, '', clTeeColor);
end;
// ADO
if cbADO.Checked then begin
ResADO := MasterDetailTest(ADOQuery, ADOQuery1, i*10);
Chart.Series[2].AddXY(i*10, ResADO/1000, '', clTeeColor);
end;
// dbExpress
if cbdbExpress.Checked then begin
ResdbExp := MasterDetailTest(BorlandSQLQuery, BorlandSQLQuery1, i*10);
Chart.Series[3].AddXY(i*10, ResdbExp/1000, '', clTeeColor);
end;
// dbExpSda
if cbdbExpSda.Checked then begin
ResdbExpSda := MasterDetailTest(CrLabSQLQuery, CrLabSQLQuery1, i*10);
Chart.Series[4].AddXY(i*10, ResdbExpSda/1000, '', clTeeColor);
end;
if ResSDAC > 0 then begin
mBDE := ((i - 1)*mBDE + ResBDE/ResSDAC)/i;
mADO := ((i - 1)*mADO + ResADO/ResSDAC)/i;
mdbExp := ((i - 1)*mdbExp + ResdbExp/ResSDAC)/i;
mdbExpSda := ((i - 1)*mdbExpSda + ResdbExpSda/ResSDAC)/i;
lbSDAC.Caption := FloatToStrF(1, ffGeneral, 5, 3);
lbBDE.Caption := FloatToStrF(mBDE, ffGeneral, 5, 3);
lbADO.Caption := FloatToStrF(mADO, ffGeneral, 5, 3);
lbdbExpress.Caption := FloatToStrF(mdbExp, ffGeneral, 5, 3);
lbdbExpSda.Caption := FloatToStrF(mdbExpSda, ffGeneral, 5, 3);
lbBDE.Update;
lbADO.Update;
lbdbExpress.Update;
lbdbExpSda.Update;
end;
Chart.Update;
end;
PrintResults;
end;
procedure TfmMain.btSPCallTestClick(Sender: TObject);
var
i:integer;
ResSDAC, ResBDE, ResADO, ResdbExp, ResdbExpSda: integer;
mBDE, mADO, mdbExp, mdbExpSda: double;
const
Step = 10;
begin
CheckConnected;
Chart.Title.Text.Text := 'StoredProc Call Test';
for i := 0 to Chart.SeriesCount - 1 do
Chart.Series[i].Clear;
Chart.BottomAxis.Minimum := 0;
Chart.BottomAxis.Maximum := 11 * Step;
mBDE := 0;
mADO := 0;
mdbExp := 0;
mdbExpSda := 0;
for i := 1 to 10 do begin
ResSDAC := 0;
ResBDE := 0;
ResADO := 0;
ResdbExp := 0;
ResdbExpSda := 0;
meResult.Lines.Add('---------------');
// SDAC
if cbSDAC.Checked then begin
ResSDAC := SPCallTest(MSStoredProc, i*Step);
Chart.Series[0].AddXY(i*Step, ResSDAC/(Step * 10), '', clTeeColor);
end;
// BDE
if cbBDE.Checked then begin
ResBDE := SPCallTest(BDEStoredProc, i*Step);
Chart.Series[1].AddXY(i*Step, ResBDE/(Step * 10), '', clTeeColor);
end;
// ADO
if cbADO.Checked then begin
ResADO := SPCallTest(ADOStoredProc, i*Step);
Chart.Series[2].AddXY(i*Step, ResADO/(Step * 10), '', clTeeColor);
end;
// dbExpress
if cbdbExpress.Checked then begin
ResdbExp := SPCallTest(BorlandSQLStoredProc, i*Step);
Chart.Series[3].AddXY(i*Step, ResdbExp/(Step * 10), '', clTeeColor);
end;
// dbExpSda
if cbdbExpSda.Checked then begin
ResdbExpSda := SPCallTest(CrLabSQLStoredProc, i*Step);
Chart.Series[4].AddXY(i*Step, ResdbExpSda/(Step * 10), '', clTeeColor);
end;
if ResSDAC > 0 then begin
mBDE := ((i - 1)*mBDE + ResBDE/ResSDAC)/i;
mADO := ((i - 1)*mADO + ResADO/ResSDAC)/i;
mdbExp := ((i - 1)*mdbExp + ResdbExp/ResSDAC)/i;
mdbExpSda := ((i - 1)*mdbExpSda + ResdbExpSda/ResSDAC)/i;
lbSDAC.Caption := FloatToStrF(1, ffGeneral, 5, 3);
lbBDE.Caption := FloatToStrF(mBDE, ffGeneral, 5, 3);
lbADO.Caption := FloatToStrF(mADO, ffGeneral, 5, 3);
lbdbExpress.Caption := FloatToStrF(mdbExp, ffGeneral, 5, 3);
lbdbExpSda.Caption := FloatToStrF(mdbExpSda, ffGeneral, 5, 3);
lbBDE.Update;
lbADO.Update;
lbdbExpress.Update;
lbdbExpSda.Update;
end;
Chart.Update;
end;
PrintResults;
end;
procedure TfmMain.btDataLoadingTestClick(Sender: TObject);
begin
//
end;
(*
const
Step = 1000;
var
i:integer;
ResSDAC,ResBDE,ResADO,ResdbExp: integer;
mBDE,mADO,mdbExp: double;
begin
Chart.Title.Text.Text := 'DataLoading Test';
for i := 0 to Chart.SeriesCount - 1 do
Chart.Series[i].Clear;
Chart.BottomAxis.Minimum := 0; //-100;
Chart.BottomAxis.Maximum := Step*6;//11;
mBDE := 0;
mADO := 0;
mdbExp := 0;
for i := 1 to 5 do begin
ResSDAC := 0;
ResBDE := 0;
ResADO := 0;
ResdbExp := 0;
meResult.Lines.Add('---------------');
ExecSQL('TRUNCATE TABLE Loaded');
// SDAC
if cbSDAC.Checked then begin
ResSDAC := DataLoadingTest(MSLoader, i*Step);
Chart.Series[0].AddXY(i*Step, ResSDAC/1000, '', clTeeColor);
end;
MSConnection.Commit;
MSConnection.ExecSQL('TRUNCATE TABLE Loaded', [Null]);
Database.StartTransaction;
// BDE
if cbBDE.Checked then begin
ResBDE := DataLoadingTest(BDEQuery, i*Step);
Chart.Series[1].AddXY(i*Step, ResBDE/1000, '', clTeeColor);
end;
Database.Commit;
MSConnection.ExecSQL('TRUNCATE TABLE Loaded', [Null]);
// ADO
if cbADO.Checked then begin
ResADO := DataLoadingTest(ADOQuery, i*Step);
Chart.Series[2].AddXY(i*Step, ResADO/1000, '', clTeeColor);
end;
// dbExpress
MSConnection.ExecSQL('TRUNCATE TABLE Loaded', [Null]);
if cbdbExpress.Checked then begin
ResdbExp := DataLoadingTest(BorlandSQLQuery, i*Step);
Chart.Series[3].AddXY(i*Step, ResdbExp/1000, '', clTeeColor);
end;
if ResSDAC > 0 then begin
mBDE := ((i - 1)*mBDE + ResBDE/ResSDAC)/i;
mADO := ((i - 1)*mADO + ResADO/ResSDAC)/i;
mdbExp:= ((i - 1)*mdbExp+ ResdbExp/ResSDAC)/i;
lbSDAC.Caption := FloatToStrF(1, ffGeneral, 5, 3);
lbBDE.Caption := FloatToStrF(mBDE, ffGeneral, 5, 3);
lbADO.Caption := FloatToStrF(mADO, ffGeneral, 5, 3);
lbdbExpress.Caption := FloatToStrF(mdbExp, ffGeneral, 5, 3);
lbBDE.Update;
lbADO.Update;
lbdbExpress.Update;
end;
Chart.Update;
end;
end;
*)
procedure TfmMain.edFetchRowsExit(Sender: TObject);
var
Connected: boolean;
begin
try
MSQuery.FetchRows := StrToInt(edFetchRows.Text);
MSQuery1.FetchRows := StrToInt(edFetchRows.Text);
Connected := Database.Connected;
Database.Close;
Database.Params.Values['ROWSET SIZE'] := edFetchRows.Text;
if Connected then begin
Database.LoginPrompt := False;
Database.Open;
Database.LoginPrompt := True;
end;
ADOQuery.CacheSize := StrToInt(edFetchRows.Text);
ADOQuery1.CacheSize := StrToInt(edFetchRows.Text);
finally
edFetchRows.Text := IntToStr(MSQuery.FetchRows);
end;
end;
procedure TfmMain.btCreateClick(Sender: TObject);
begin
scCreate.Execute;
scCreate2.Execute;
end;
procedure TfmMain.btDropClick(Sender: TObject);
begin
scDrop.Execute;
end;
procedure TfmMain.cbMarkClick(Sender: TObject);
var
i: integer;
begin
for i := 0 to Chart.SeriesCount - 1 do
Chart.Series[i].Marks.Visible := cbMark.Checked;
end;
(*
procedure TfmMain.MSLoaderPutData(Sender: TMSLoader);
var
i: integer;
begin
for i := 1 to LoadCount do begin
Sender.PutColumnData(0, i, i);
Sender.PutColumnData(1, i, '01234567890123456789');
end;
end;*)
procedure TfmMain.btnMultiExecutingClick(Sender: TObject);
var
i:integer;
ResSDAC, ResBDE, ResADO, ResdbExp, ResdbExpSda: integer;
mBDE, mADO, mdbExp, mdbExpSda: double;
begin
CheckConnected;
Chart.Title.Text.Text := 'MultiExecuting Test';
for i := 0 to Chart.SeriesCount - 1 do
Chart.Series[i].Clear;
Chart.BottomAxis.Minimum := 0;
Chart.BottomAxis.Maximum := 1100;
mBDE := 0;
mADO := 0;
mdbExp := 0;
mdbExpSda := 0;
for i := 1 to 10 do begin
ResSDAC := 0;
ResBDE := 0;
ResADO := 0;
ResdbExp := 0;
ResdbExpSda := 0;
meResult.Lines.Add('---------------');
// SDAC
if cbSDAC.Checked then begin
ResSDAC := MultiExecutingTest(MSSQL, i*100);
Chart.Series[0].AddXY(i*100, ResSDAC/1000, '', clTeeColor);
end;
// BDE
if cbBDE.Checked then begin
ResBDE := MultiExecutingTest(BDEQuery, i*100);
Chart.Series[1].AddXY(i*100, ResBDE/1000, '', clTeeColor);
end;
// ADO
if cbADO.Checked then begin
ResADO := MultiExecutingTest(ADOQuery, i*100);
Chart.Series[2].AddXY(i*100, ResADO/1000, '', clTeeColor);
end;
// dbExpress
if cbdbExpress.Checked then begin
ResdbExp := MultiExecutingTest(BorlandSQLQuery, i*100);
Chart.Series[3].AddXY(i*100, ResdbExp/1000, '', clTeeColor);
end;
// dbExpSda
if cbdbExpSda.Checked then begin
ResdbExpSda := MultiExecutingTest(CrLabSQLQuery, i*100);
Chart.Series[4].AddXY(i*100, ResdbExpSda/1000, '', clTeeColor);
end;
if ResSDAC > 0 then begin
mBDE := ((i - 1)*mBDE + ResBDE/ResSDAC)/i;
mADO := ((i - 1)*mADO + ResADO/ResSDAC)/i;
mdbExp := ((i - 1)*mdbExp + ResdbExp/ResSDAC)/i;
mdbExpSda := ((i - 1)*mdbExpSda + ResdbExpSda/ResSDAC)/i;
lbSDAC.Caption := FloatToStrF(1, ffGeneral, 5, 3);
lbBDE.Caption := FloatToStrF(mBDE, ffGeneral, 5, 3);
lbADO.Caption := FloatToStrF(mADO, ffGeneral, 5, 3);
lbdbExpress.Caption := FloatToStrF(mdbExp, ffGeneral, 5, 3);
lbdbExpSda.Caption := FloatToStrF(mdbExpSda, ffGeneral, 5, 3);
lbBDE.Update;
lbADO.Update;
lbdbExpress.Update;
lbdbExpSda.Update;
end;
Chart.Update;
end;
PrintResults;
end;
procedure TfmMain.FormDestroy(Sender: TObject);
begin
btDisconnectClick(nil);
end;
procedure TfmMain.btnInsertPostClick(Sender: TObject);
var
i: integer;
ResSDAC, ResBDE, ResADO, ResdbExp, ResdbExpSda: integer;
mBDE, mADO, mdbExp, mdbExpSda: double;
const
Step = 10;
begin
CheckConnected;
Chart.Title.Text.Text := 'Insert / Post Test';
for i := 0 to Chart.SeriesCount - 1 do
Chart.Series[i].Clear;
Chart.BottomAxis.Minimum := 0;
Chart.BottomAxis.Maximum := 11 * Step;
mBDE := 0;
mADO := 0;
mdbExp := 0;
mdbExpSda := 0;
for i := 1 to 10 do begin
ResSDAC := 0;
ResBDE := 0;
ResADO := 0;
ResdbExp := 0;
ResdbExpSda := 0;
meResult.Lines.Add('---------------');
// SDAC
if cbSDAC.Checked then begin
ResSDAC := InsertPostTest(MSTable, i*Step);
Chart.Series[0].AddXY(i*Step, ResSDAC/10 * Step, '', clTeeColor);
end;
// BDE
if cbBDE.Checked then begin
ResBDE := InsertPostTest(BDETable, i*Step);
Chart.Series[1].AddXY(i*Step, ResBDE/10 * Step, '', clTeeColor);
end;
// ADO
if cbADO.Checked then begin
ResADO := InsertPostTest(ADOTable, i*Step);
Chart.Series[2].AddXY(i*Step, ResADO/10 * Step, '', clTeeColor);
end;
// dbExpress
if cbdbExpress.Checked then begin
ResdbExp := InsertPostTest(BorlandClientDataSet, i*Step);
Chart.Series[3].AddXY(i*Step, ResdbExp/10 * Step, '', clTeeColor);
end;
// dbExpSda
if cbdbExpSda.Checked then begin
ResdbExpSda := InsertPostTest(CrLabClientDataSet, i*Step);
Chart.Series[4].AddXY(i*Step, ResdbExpSda/10 * Step, '', clTeeColor);
end;
if ResSDAC > 0 then begin
mBDE := ((i - 1)*mBDE + ResBDE/ResSDAC)/i;
mADO := ((i - 1)*mADO + ResADO/ResSDAC)/i;
mdbExp := ((i - 1)*mdbExp + ResdbExp/ResSDAC)/i;
mdbExpSda := ((i - 1)*mdbExpSda + ResdbExpSda/ResSDAC)/i;
lbSDAC.Caption := FloatToStrF(1, ffGeneral, 5, 3);
lbBDE.Caption := FloatToStrF(mBDE, ffGeneral, 5, 3);
lbADO.Caption := FloatToStrF(mADO, ffGeneral, 5, 3);
lbdbExpress.Caption := FloatToStrF(mdbExp, ffGeneral, 5, 3);
lbdbExpSda.Caption := FloatToStrF(mdbExpSda, ffGeneral, 5, 3);
lbBDE.Update;
lbADO.Update;
lbdbExpress.Update;
lbdbExpSda.Update;
end;
Chart.Update;
end;
PrintResults;
end;
procedure TfmMain.cbSetInternalNameClick(Sender: TObject);
var
AConnected: boolean;
ALoginPrompt: boolean;
begin
AConnected := MSConnection.Connected;
ALoginPrompt := MSConnection.LoginPrompt;
MSConnection.Connected := false;
MSConnection.LoginPrompt := false;
MSConnection.Connected := AConnected;
MSConnection.LoginPrompt := ALoginPrompt;
end;
procedure TfmMain.cbResultLogClick(Sender: TObject);
begin
meResult.Visible := cbResultLog.Checked;
Splitter1.Visible := cbResultLog.Checked;
end;
const
coFetchAll = TSQLConnectionOption(301); // boolean
coPermitPrepare = TSQLConnectionOption(104);
procedure TfmMain.CrLabSQLConnectionAfterConnect(Sender: TObject);
begin
CrLabSQLConnection.SQLConnection.SetOption(coFetchAll, Integer(False));
CrLabSQLConnection.SQLConnection.SetOption(coPermitPrepare, Integer(True));
end;
procedure TfmMain.cbPermitPrepareClick(Sender: TObject);
begin
CrLabSQLConnection.Close;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -