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

📄 main.pas

📁 ODAC 5.7.0.28
💻 PAS
📖 第 1 页 / 共 3 页
字号:
    if cbODAC.Checked then begin
      ResODAC := MasterDetailTest(OraQuery, OraQuery1, i*50);
      Chart.Series[0].AddXY(i*50, ResODAC/1000, '', clTeeColor);
    end;
  // BDE
    if cbBDE.Checked then begin
      ResBDE := MasterDetailTest(BDEQuery, BDEQuery1, i*50);
      Chart.Series[1].AddXY(i*50, ResBDE/1000, '', clTeeColor);
    end;
  // ADO
    if cbADO.Checked then begin
      ResADO := MasterDetailTest(ADOQuery, ADOQuery1, i*50);
      Chart.Series[2].AddXY(i*50, ResADO/1000, '', clTeeColor);
    end;
  // dbExpress
    if cbdbExpress.Checked then begin
      ResdbExp := MasterDetailTest(BorlandSQLQuery, BorlandSQLQuery1, i*50);
      Chart.Series[3].AddXY(i*50, ResdbExp/1000, '', clTeeColor);
    end;

    if ResODAC > 0 then begin
      mBDE := ((i - 1)*mBDE + ResBDE/ResODAC)/i;
      mADO := ((i - 1)*mADO + ResADO/ResODAC)/i;
      mdbExp := ((i - 1)*mdbExp+ ResdbExp/ResODAC)/i;
      lbODAC.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.btSPCallTestClick(Sender: TObject);
var
  i:integer;
  ResODAC,ResBDE,ResADO,ResdbExp: integer;
  mBDE,mADO,mdbExp: double;
const
  Step = 50;
begin
  Chart.Title.Text.Text := 'StoredProc Call Test';
  Chart.Series[0].Clear;
  Chart.Series[1].Clear;
  Chart.Series[2].Clear;
  Chart.Series[3].Clear;
  Chart.BottomAxis.Minimum := 0; 
  Chart.BottomAxis.Maximum := 11 * Step;

  mBDE := 0;
  mADO := 0;
  mdbExp := 0;
  for i := 1 to 10 do begin
    ResODAC := 0;
    ResBDE := 0;
    ResADO := 0;
    ResdbExp := 0;

    meResult.Lines.Add('---------------');
  // ODAC
    if cbODAC.Checked then begin
      ResODAC := SPCallTest(OraStoredProc, i*Step);
      Chart.Series[0].AddXY(i*Step, ResODAC/(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;

    if ResODAC > 0 then begin
      mBDE := ((i - 1)*mBDE + ResBDE/ResODAC)/i;
      mADO := ((i - 1)*mADO + ResADO/ResODAC)/i;
      mdbExp := ((i - 1)*mdbExp + ResdbExp/ResODAC)/i;
      lbODAC.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.btDataLoadingTestClick(Sender: TObject);
const
  Step = 1000;
var
  i:integer;
  ResODAC,ResBDE,ResADO,ResdbExp: integer;
  mBDE,mADO,mdbExp: double;
begin
  Chart.Title.Text.Text := 'DataLoading Test';
  Chart.Series[0].Clear;
  Chart.Series[1].Clear;
  Chart.Series[2].Clear;
  Chart.Series[3].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
    ResODAC := 0;
    ResBDE := 0;
    ResADO := 0;
    ResdbExp := 0;

    meResult.Lines.Add('---------------');
    
    OraSession.ExecSQL('TRUNCATE TABLE Loaded', [Null]);
  // ODAC
    if cbODAC.Checked then begin
      ResODAC := DataLoadingTest(OraLoader, i*Step);
      Chart.Series[0].AddXY(i*Step, ResODAC/1000, '', clTeeColor);
    end;
    OraSession.Commit;
    OraSession.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;
    OraSession.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
    OraSession.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 ResODAC > 0 then begin
      mBDE := ((i - 1)*mBDE + ResBDE/ResODAC)/i;
      mADO := ((i - 1)*mADO + ResADO/ResODAC)/i;
      mdbExp:= ((i - 1)*mdbExp+ ResdbExp/ResODAC)/i;
      lbODAC.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
    OraQuery.FetchRows := StrToInt(edFetchRows.Text);
    OraQuery1.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);    
    BorlandSQLConnection.Params.Values['RowsetSize'] := edFetchRows.Text;
  finally
    edFetchRows.Text := IntToStr(OraQuery.FetchRows);
  end;
end;

procedure TfmMain.btCreateClick(Sender: TObject);
begin
  scCreate.Execute;
end;

procedure TfmMain.btDropClick(Sender: TObject);
begin
  scDrop.Execute;
end;

procedure TfmMain.cbMarkClick(Sender: TObject);
begin
  Chart.Series[0].Marks.Visible := cbMark.Checked;
  Chart.Series[1].Marks.Visible := cbMark.Checked;
  Chart.Series[2].Marks.Visible := cbMark.Checked;
  Chart.Series[3].Marks.Visible := cbMark.Checked;
end;

procedure TfmMain.OraLoaderPutData(Sender: TOraLoader);
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.cbNetClick(Sender: TObject);
begin
  OraSession.Connected := false;
  OraSession.Options.Net := cbNet.Checked;
  OraSession.Connected := true;
end;

procedure TfmMain.cbOCI7Click(Sender: TObject);
begin
  OraSession.Options.UseOCI7 := cbOCI7.Checked;
end;

procedure TfmMain.btnMultiExecutingClick(Sender: TObject);
var
  i:integer;
  ResODAC,ResBDE,ResADO,ResdbExp: integer;
  mBDE,mADO,mdbExp: double;
begin
  Chart.Title.Text.Text := 'MultiExecuting Test';
  Chart.Series[0].Clear;
  Chart.Series[1].Clear;
  Chart.Series[2].Clear;
  Chart.Series[3].Clear;
  Chart.BottomAxis.Minimum := 0; 
  Chart.BottomAxis.Maximum := 5500;

  mBDE := 0;
  mADO := 0;
  mdbExp := 0;
  for i := 1 to 10 do begin
    ResODAC := 0;
    ResBDE := 0;
    ResADO := 0;
    ResdbExp := 0;

    meResult.Lines.Add('---------------');
  // ODAC
    if cbODAC.Checked then begin
      ResODAC := MultiExecutingTest(OraSQL, i*500);
      Chart.Series[0].AddXY(i*500, ResODAC/1000, '', clTeeColor);
    end;
  // BDE
    if cbBDE.Checked then begin
      ResBDE := MultiExecutingTest(BDEQuery, i*500);
      Chart.Series[1].AddXY(i*500, ResBDE/1000, '', clTeeColor);
    end;
  // ADO
    if cbADO.Checked then begin
      ResADO := MultiExecutingTest(ADOQuery, i*500);
      Chart.Series[2].AddXY(i*500, ResADO/1000, '', clTeeColor);
    end;
  // dbExpress
    if cbdbExpress.Checked then begin
      ResdbExp := MultiExecutingTest(BorlandSQLQuery, i*500);
      Chart.Series[3].AddXY(i*500, ResdbExp/1000, '', clTeeColor);
    end;

    if ResODAC > 0 then begin
      mBDE := ((i - 1)*mBDE + ResBDE/ResODAC)/i;
      mADO := ((i - 1)*mADO + ResADO/ResODAC)/i;
      mdbExp := ((i - 1)*mdbExp + ResdbExp/ResODAC)/i;
      lbODAC.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.FormDestroy(Sender: TObject);
begin
  btDisconnectClick(nil);
end;

procedure TfmMain.btnInsertPostClick(Sender: TObject);
var
  i:integer;
  ResODAC,ResBDE,ResADO,ResdbExp: integer;
  mBDE,mADO,mdbExp: double;
const
  Step = 50;
begin
  Chart.Title.Text.Text := 'Insert / Post Test';
  Chart.Series[0].Clear;
  Chart.Series[1].Clear;
  Chart.Series[2].Clear;
  Chart.Series[3].Clear;
  Chart.BottomAxis.Minimum := 0; 
  Chart.BottomAxis.Maximum := 11 * Step;

  mBDE := 0;
  mADO := 0;
  mdbExp := 0;
  for i := 1 to 10 do begin
    ResODAC := 0;
    ResBDE := 0;
    ResADO := 0;
    ResdbExp := 0;

    meResult.Lines.Add('---------------');
  // ODAC
    if cbODAC.Checked then begin
      ResODAC := InsertPostTest(OraTable, i*Step);
      Chart.Series[0].AddXY(i*Step, ResODAC/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;

    if ResODAC > 0 then begin
      mBDE := ((i - 1)*mBDE + ResBDE/ResODAC)/i;
      mADO := ((i - 1)*mADO + ResADO/ResODAC)/i;
      mdbExp := ((i - 1)*mdbExp + ResdbExp/ResODAC)/i;
      lbODAC.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.cbSetInternalNameClick(Sender: TObject);
var
  AConnected: boolean;
  AConnectPrompt: boolean;
begin
  AConnected := OraSession.Connected;
  AConnectPrompt := OraSession.ConnectPrompt;
  OraSession.Connected := false;
  OraSession.ConnectPrompt := false;
  if cbSetInternalName.Checked then
    OraSession.InternalName := 'ODAC'
  else
    OraSession.InternalName := '';
  OraSession.Connected := AConnected;
  OraSession.ConnectPrompt := AConnectPrompt;
end;

procedure TfmMain.cbResultLogClick(Sender: TObject);
begin
  meResult.Visible := cbResultLog.Checked;
  Splitter1.Visible := cbResultLog.Checked;
end;

end.

⌨️ 快捷键说明

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