Menggunakan Structured Query Language dalam Delphi

click fraud protection

SQL (Structured Query Language) adalah bahasa standar untuk mendefinisikan dan memanipulasi data dalam database relasional. Sesuai dengan model data relasional, database dianggap sebagai seperangkat tabel, hubungan diwakili oleh nilai-nilai dalam tabel, dan data diambil dengan menentukan tabel hasil yang dapat diturunkan dari satu atau lebih tabel dasar. Kueri mengambil bentuk bahasa perintah yang memungkinkan Anda pilih, masukkan, perbarui, temukan lokasi data, dan sebagainya.

Dalam Delphi: TQuery

Jika Anda akan menggunakan SQL dalam aplikasi Anda, Anda akan menjadi sangat terbiasa dengan TQuery komponen. Delphi memungkinkan aplikasi Anda menggunakan sintaks SQL secara langsung melalui komponen TQuery untuk mengakses data dari tabel Paradox dan dBase (menggunakan SQL lokal - bagian dari SQL standar ANSI), Database pada Server InterBase Lokal, dan Database pada basis data jauh server.
Delphi juga mendukung permintaan heterogen terhadap lebih dari satu jenis server atau tabel (misalnya, data dari tabel Oracle dan tabel Paradox) .TQuery memiliki properti yang disebut

instagram viewer
SQL, yang digunakan untuk menyimpan pernyataan SQL.

TQuery merangkum satu atau lebih pernyataan SQL, mengeksekusinya dan menyediakan metode yang dengannya kita dapat memanipulasi hasilnya. Kueri dapat dibagi menjadi dua kategori: kueri yang menghasilkan set hasil (seperti a PILIH pernyataan), dan yang tidak (seperti MEMPERBARUIatau MEMASUKKAN pernyataan). Gunakan TQuery. Buka untuk menjalankan kueri yang menghasilkan kumpulan hasil; gunakan TQuery. ExecSQL untuk menjalankan kueri yang tidak menghasilkan set hasil.

Pernyataan SQL bisa berupa statis atau dinamis, yaitu, mereka dapat diatur pada waktu desain atau termasuk parameter (TQuery. Params) yang bervariasi pada saat dijalankan. Menggunakan kueri yang diparameterisasi sangat fleksibel karena Anda dapat mengubah pandangan pengguna dan akses ke data dengan cepat saat dijalankan.

Semua pernyataan SQL yang dapat dieksekusi harus disiapkan sebelum dapat dieksekusi. Hasil persiapan adalah bentuk pernyataan yang dapat dieksekusi atau operasional. Metode mempersiapkan pernyataan SQL dan kegigihan bentuk operasionalnya membedakan SQL statis dari SQL dinamis. Pada waktu desain kueri disiapkan dan dijalankan secara otomatis saat Anda mengatur pertanyaan Properti aktif komponen menjadi True. Pada waktu berjalan, permintaan disiapkan dengan panggilan untuk Mempersiapkan dan dieksekusi ketika aplikasi memanggil metode Open atau ExecSQL komponen.

TQuery dapat mengembalikan dua jenis rangkaian hasil: "hidup"seperti komponen TTable (pengguna dapat mengedit data dengan kontrol data, dan ketika panggilan ke Posting terjadi perubahan dikirim ke database),"hanya baca"hanya untuk tujuan tampilan. Untuk meminta rangkaian hasil langsung, setel properti RequestLive komponen kueri ke True, dan ketahuilah bahwa pernyataan SQL harus memenuhi beberapa persyaratan khusus (tidak ada ORDER, SUM, AVG, dll.)

Kueri berperilaku dalam banyak hal seperti filter tabel, dan dalam beberapa cara, kueri bahkan lebih kuat daripada filter karena memungkinkan Anda mengakses:

  • lebih dari satu tabel sekaligus ("gabung" dalam SQL)
  • bagian tertentu dari baris dan kolom dari tabel yang mendasarinya, daripada selalu mengembalikan semuanya

Contoh sederhana

Sekarang mari kita lihat beberapa aksi SQL. Meskipun kita bisa menggunakan Database Form Wizard untuk membuat beberapa contoh SQL untuk contoh ini, kita akan melakukannya secara manual, langkah demi langkah:

1. Tempatkan TQuery, TDataSource, TDBGrid, TEdit, dan komponen TButton pada formulir utama.
2. Setel properti DataSet komponen TDataSource ke Query1.
3. Setel properti DataSource komponen TDBGrid ke DataSource1.
4. Setel properti DatabaseName komponen TQuery ke DBDEMOS.
5. Klik dua kali pada properti SQL dari TQuery untuk menetapkan pernyataan SQL untuknya.
6. Untuk membuat data tampilan kotak pada waktu desain, ubah properti Aktif komponen TQuery ke True.
Kotak menampilkan data dari tabel Employee.db dalam tiga kolom (FirstName, LastName, Gaji) bahkan jika Employee.db memiliki 7 bidang, dan himpunan hasil dibatasi untuk catatan di mana FirstName dimulai dengan 'R'.

7. Sekarang berikan kode berikut untuk acara OnClick di Button1.

prosedur TForm1.Button1Click (Pengirim: TObject); mulai
Kueri1.Tutup;{tutup kueri}// berikan ekspresi SQL baru
Query1.SQL.Clear; Query1.SQL.Add ('Pilih EmpNo, FirstName, LastName'); Query1.SQL.Add ('FROM Employee.db'); Query1.SQL.Add ('WHERE Gaji>' + Edit1.Text); Query1.RequestLive: = true; Pertanyaan1. Buka; {query terbuka + data tampilan}akhir;

8. Jalankan aplikasi Anda. Ketika Anda mengklik Tombol (selama Edit 1 memiliki nilai mata uang yang valid di dalamnya), kisi akan menampilkan Bidang EmpNo, FirstName, dan LastName untuk semua catatan di mana Gaji lebih besar dari mata uang yang ditentukan nilai.

Dalam contoh ini, kami membuat pernyataan SQL statis sederhana dengan himpunan hasil langsung (kami belum mengubah catatan yang ditampilkan) hanya untuk menampilkan tujuan.

instagram story viewer