9 Agustus 2011

SQL pada Delphi


SQL(Structured Query Language) adalah bahasa standar untuk mendefinisikan dan memanipulasi data dalam database relasional. Sesuai dengan model relasional data, database dianggap sebagai satu set tabel, hubungan diwakili oleh nilai-nilai dalam tabel, dan data diambil dengan menetapkan tabel hasil yang dapat diperoleh dari satu atau lebih base tables.
Pertanyaan mengambil bentuk bahasa perintah yang memungkinkan Anda pilih, insert, update, mengetahui lokasi data, dan sebagainya.


          Pada Delphi ... TQuery
Jika Anda akan menggunakan SQL pada aplikasi Anda, Anda akan menjadi sangat akrab dengan komponen TQuery. Delphi memungkinkan aplikasi Anda untuk menggunakan sintaks SQL langsung meskipun komponen TQuery untuk mengakses data dari: tabel Paradox dan dBase (menggunakan SQL lokal - subset dari standar ANSI SQL), Database pada Server Lokal Interbase, dan Database pada server basis data jauh.
Delphi juga mendukung query heterogen terhadap lebih dari satu server atau jenis tabel (misalnya, data dari tabel Oracle dan meja Paradox).

TQuery memiliki properti yang disebut SQL, yang digunakan untuk menyimpan pernyataan SQL.
TQuery merangkum satu atau lebih pernyataan SQL, mengeksekusi mereka dan menyediakan metode dengan mana kita dapat memanipulasi hasil. Query dapat dibagi menjadi dua kategori: orang-orang yang menghasilkan hasil set (seperti perintah SELECT), dan mereka yang tidak (seperti UPDATE atau INSERT pernyataan). Gunakan TQuery.Open untuk mengeksekusi sebuah query yang menghasilkan satu set hasil, gunakan TQuery.ExecSQL untuk mengeksekusi query yang tidak menghasilkan hasil set.

Pernyataan SQL dapat berupa statis atau dinamis, yaitu, mereka dapat diatur pada saat desain atau termasuk parameter (TQuery.Params) yang bervariasi pada waktu berjalan. Menggunakan query parameter sangat fleksibel, karena Anda dapat mengubah tampilan pengguna dan akses ke data on the fly pada saat run time.

Semua pernyataan SQL dieksekusi harus dipersiapkan sebelum mereka dapat dieksekusi. Hasil dari persiapan adalah bentuk eksekusi atau operasional pernyataan. Metode mempersiapkan pernyataan SQL dan kegigihan bentuk operasional membedakan SQL statis dari SQL dinamis. Pada waktu desain query dipersiapkan dan dijalankan secara otomatis ketika Anda mengeset properti Aktif komponen query untuk Benar. Pada waktu berjalan, query dipersiapkan dengan panggilan untuk Siapkan, dan dijalankan ketika aplikasi panggilan metode komponen Terbuka atau ExecSQL.

TQuery dapat kembali dua macam hasil set: "hidup" sebagai dengan komponen ttabel (pengguna dapat mengedit data dengan kontrol data, dan bila panggilan untuk Memberikan terjadi perubahan dikirim ke database), "hanya membaca" hanya untuk tampilan. Untuk meminta satu set hasil hidup, mengatur properti RequestLive komponen query untuk Benar, dan menyadari bahwa pernyataan SQL harus memenuhi beberapa persyaratan tertentu (tidak ada ORDER BY, SUM, AVG, dll)

Sebuah permintaan berperilaku dalam banyak hal sangat banyak seperti filter meja, dan dalam beberapa hal query bahkan lebih kuat daripada filter karena memungkinkan Anda mengakses:
  • Lebih dari satu tabel pada suatu waktu ("bergabung" di SQL),
  • Subset tertentu dari baris dan kolom dari tabel yang mendasarinya (s), daripada selalu kembali mereka semua. 
  Contoh :
Sekarang mari kita lihat beberapa SQL dalam eksekusinya. Meskipun kita bisa menggunakan Form Wizard Database untuk membuat beberapa contoh SQL untuk contoh ini kita akan melakukannya secara manual, langkah demi langkah yang harus dilakukan :
  1. Tempatkan TQuery, TDataSource, TDBGrid, TEdit, dan komponen TButton pada form utama.
  2. Set TDataSource DataSet properti komponen untuk Query1.
  3. Set properti DataSource TDBGrid komponen untuk DataSource1.
  4. Mengatur komponen TQuery DatabaseName properti untuk DBDEMOS.
  5. Double-klik pada properti SQL TQuery untuk menetapkan pernyataan SQL untuk itu.
     
    6. Untuk membuat data yang menampilkan grid pada saat desain, mengubah properti Aktif TQuery komponen menjadi True.

     
    Seperti yang Anda lihat, grid menampilkan data dari tabel Employee.db dalam tiga kolom (FirstName, LastName, Gaji) bahkan jika Emplyee.db memiliki 7 bidang, dan set hasil dibatasi untuk catatan-catatan mana Nama_belakang dimulai dengan 'R' .
    7. Sekarang menetapkan kode berikut untuk event OnClick Tombol1 tersebut.
     
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    Query1.Close;{close the query}
    //assign new SQL expression
    Query1.SQL.Clear;
    Query1.SQL.Add ('Select EmpNo, FirstName, LastName');
    Query1.SQL.Add ('FROM Employee.db');
    Query1.SQL.Add ('WHERE Salary > ' + Edit1.Text);
    Query1.RequestLive := true;
    Query1.Open; {open query + display data}
    end;
           
 
       8. Jalankan aplikasi Anda. Ketika Anda mengklik pada tombol (selama Edit 1 memiliki nilai mata uang  yang valid di dalamnya), grid akan menampilkan empno, FirstName dan bidang LastName untuk semua catatan di mana Gaji lebih besar dari nilai mata uang tertentu.

Tidak ada komentar:

Posting Komentar