Ads

Ads

Translate

Showing posts with label Delphi XE8. Show all posts
Showing posts with label Delphi XE8. Show all posts

Monday, 24 August 2015

Mempercepat Pengolahan SQL dengan Array DML

Interbase and Oracle tested

Array DML di FireDAC membantu Anda mengambil keuntungan dari mesin database yang mendukung fitur ini dengan mudah.
 Untuk melihat perbedaan dalam kode dan kecepatan, memungkinkan mengeksplorasi contoh sederhana. Contoh menggunakan tabel berikut disebut tes yang berisi dua bidang, Integer dan String.
CREATE TABLE test(Field1 INTEGER, field2 VARCHAR(20))
Cara khas untuk menyisipkan 10000 catatan adalah dengan menggunakan loop, di mana kita memiliki permintaan yang hanya update parameter dan mengeksekusi SQL.


const
  NUM_INSERTS = 10000;

procedure TForm7.Button1Click(Sender: TObject);
var i: integer; t: integer;
begin
  FDQuery1.ExecSQL('DELETE FROM test');
  FDQuery1.SQL.Text := 'INSERT INTO test(field1, field2) values (:field1, :field2)';
  t := GetTickCount;
  FDQuery1.Connection.StartTransaction;
  try
    for i := 0 to NUM_INSERTS-1 do
    begin
      FDQuery1.Params[0].AsInteger := i;
      FDQuery1.Params[1].AsString := 'Str' + IntToStr(i);
      FDQuery1.ExecSQL;
    end;
  finally
    FDQuery1.Connection.Commit;
  end;
  (Sender as TButton).Caption :=  FloatToStr((GetTickCount() - t) / 1000);
end;

Untuk mengubah kode ini untuk menggunakan Array DML, ada sangat sedikit untuk melakukan.
 Pertama, sebelum menetapkan nilai parameter Anda dapat mengatur ukuran dari array yang ingin Anda masukkan. (Anda selalu dapat mengatur ini lebih tinggi yang diperlukan jika Anda tidak yakin)
Setelah ukuran array diatur, ada sedikit modifikasi dengan cara nilai-nilai parameter yang ditetapkan. FireDAC mendukung setter jamak untuk menetapkan setiap record dalam array dinamis. 
Silahkan rubah kode diatas dengan kode dibawah ini.
procedure TForm7.Button2Click(Sender: TObject);
var i: integer; t: integer;
begin
  FDQuery1.ExecSQL('DELETE FROM test');
  FDQuery1.SQL.Text := 'INSERT INTO test(field1, field2) values (:field1, :field2)';
  t := GetTickCount;
  FDQuery1.Connection.StartTransaction;
  try
    FDQuery1.Params.ArraySize := NUM_INSERTS;
    for i := 0 to NUM_INSERTS-1 do
    begin
      FDQuery1.Params[0].AsIntegers[i] := i;
      FDQuery1.Params[1].AsStrings[i] := 'Str' + IntToStr(i);
    end;
    FDQuery1.Execute(NUM_INSERTS,0);
  finally
    FDQuery1.Connection.Commit;
  end;
  (Sender as TButton).Caption :=  FloatToStr((GetTickCount() - t) / 1000);
end;


Jadi apa perbedaan pada run time? Pada PC saya (mesin virtual), menjalankan 10.000 sisipan mengambil 1,014 detik di blok pertama kode, dibandingkan dengan 0,125 detik dengan blok kedua kode.yaitu hanya 12% dari waktu pemrosesan yang asli dan lebih dari 8 kali lebih cepat!


Yang butuh dvd DelphiXE8 bisa japri saya di 085787677544

Wednesday, 1 April 2015

DelphiXE8 Release Delphi Indonesia


DelphiXE8 not my own image



Apa yang baru di DelphiXE8 ?

  • TWebBrowser - sekarang mendukung Windows, Mac OS X, Android, iOS
  • TMapView - fitur baru yang memudahkan untuk bekerja dengan Google Maps
  • TAppAnalytics - fitur baru yang memungkinkan Anda untuk menyimpan statistik penggunaan aplikasi Anda
  • Ditambahkan metode dan tindakan standar untuk menyimpan foto / gambar pada perangkat standar galeri.
  • Akhirnya, menambahkan sebanyak komponen TImageList diperlukan.
  • TBluetooth - fitur baru yang memungkinkan Anda untuk bekerja dengan Bluetooth klasik
  • Ada dua jenis baru (FixedInt dan FixedUInt) untuk bilangan bulat
  • Di antara modul ditambahkan ke aplikasi pratinjau pada perangkat yang berbeda
  • Device Manager kembali ke tempat 
  • Integrated Castalia
  • Bantuan dalam format CHM
  • Dan masih banyak perbaikan kecil dan perbaikan bug.

Jika mau mencoba silahkan download .iso ini

http://altd.embarcadero.com/download/radstudio/xe8/delphicbuilder_xe8_win.iso

Best Post This Year

Install Fortesreport community Delphi 7 dan RX Berlin

Download  Pertama2 kita harus punya file installernya terlebih dahulu, download  https://github.com/fortesinformatica/fortesrepo...

Total Pageviews

© 2014 Fajar Priyadi. WP themonic converted by Bloggertheme9. Published By Gooyaabi Templates | Powered By Blogger
TOP