Bab 5: Dibalik Kumpulan Data...
Status bagian pertama data
Saat mengembangkan aplikasi database dengan Delphi dan ADO, sebagian besar pekerjaan dihabiskan untuk mempelajari dokumentasi bantuan untuk komponen DataSet. . Untuk membuat program berbasis ADO, Delphi menyediakan beberapa komponen kumpulan data: TAdoTable, TAdoQuery dan komponen lainnya. Mereka digunakan untuk memperoleh, menyajikan, dan mengubah data dari tabel atau kueri database.
Dalam Bab 5 tutorial ini, kita akan melihat secara praktis cara menyajikan, menelusuri, dan membaca data dengan memperkenalkan beberapa properti, peristiwa, dan metode dari sebagian besar komponen kumpulan data yang diinginkan.
Pilih, atur, sambungkan, dan dapatkan
Sekarang Anda telah mencapai Bab 5, Anda seharusnya sudah familiar dengan langkah-langkah yang diperlukan untuk membuat formulir database. Pada Bab 4 kita telah membuat formulir penjelajahan data sederhana secara manual. Bab ini akan menggunakannya untuk melanjutkan diskusi.
Hingga saat ini, kami hanya menggunakan satu komponen dataset (ADO): TAdoTable. Penting untuk dipahami bahwa TADOQuery dan TADODataSet (sebagai komponen kumpulan data) menggunakan pengaturan yang sama untuk metode dan kejadian yang sama.
Buka Wijen; Tutup Wijen (Buka Wijen; Tutup Wijen)
Salah satu fitur yang sangat penting dari pengembangan database Delphi adalah Delphi memungkinkan kita memproses data selama perancangan program. Anda mungkin ingat - di bab sebelumnya, kita menggunakan properti Aktif untuk membuka koneksi aktif ke data pada waktu desain.
Tidak sulit untuk memahami bahwa sebelum mulai mengolah data tabel, program harus membuka kumpulan datanya terlebih dahulu. Delphi memiliki dua cara untuk mencapai fungsi ini. Yang pertama adalah seperti yang telah kita lihat, properti Active dapat diatur ke True pada saat desain atau runtime; yang kedua adalah kita dapat memanggil metode Open pada saat runtime. Misalnya, tambahkan kode berikut ke event handler OnCreate pada formulir untuk mendapatkan data komponen ADOTable.
ADOTable1.Buka;
Catatan: Setiap kumpulan data ADO dapat mengakses data database melalui properti ConnectionStringnya sendiri atau komponen ADOConnection (dan ConnectionString-nya). Jika komponen ADOTable1 terhubung ke komponen ADOConnection1 (metode ini disarankan), membuka ADOTable1 akan mengaktifkan komponen ADOConnection yang sesuai. ADOConnection menyediakan dua event yang akan dieksekusi: OnWillConnect dan OnConnectComplete.
Metode Open menyetel properti Aktif ke True dan mengaktifkan koneksi. Ketika kita selesai dengan koneksi, kita dapat mengatur properti Aktif ke False atau memanggil metode Tutup untuk memutuskan sambungan. Biasanya kita memanggil metode Close di event handler OnClose form:
ADOTable1.Tutup;
Sebelum melanjutkan, penting untuk mengetahui bahwa bekerja dengan metode dan properti kumpulan data bergantung pada pengetahuan tentang status data saat ini. Sederhananya, properti Negara dari kumpulan data menentukan tindakan apa yang bisa atau tidak bisa terjadi pada kumpulan data kapan saja.
Apa kabarmu?
Jika kumpulan data ditutup, Status data akan menampilkan koneksi Tidak Aktif. Ketika koneksi ditutup, tidak ada operasi, perilaku, atau metode yang dapat dilakukan pada data. Saat pertama kali kita membuka koneksi ke kumpulan data, kumpulan data tersebut berada dalam status Telusuri default. Anda harus selalu mengetahui status data "Anda". Misalnya, ketika kita menghubungkan kumpulan data ke DBGrid, pengguna dapat melihat kumpulan data (atau kumpulan rekaman) yang mendasarinya, namun jika mereka ingin mengubah beberapa data, mereka harus menyetel Status ke Edit.
Ketika sebuah program memproses data, penting untuk dipahami bahwa keadaan kumpulan data terus berubah. Misalnya, saat menelusuri data di DBGrid (Status penelusuran), pengguna mulai mengedit catatan, dan status akan secara otomatis berubah menjadi Edit. Tentu saja, ini adalah perilaku defaultnya ketika properti AutoEdit pada kontrol visualisasi data (DBGrid, DBEdit) diatur ke True.
Tapi bagaimana kita mendapatkan statusnya? ADOTable (atau komponen DataSet lainnya) tidak memiliki pemicu untuk menangani perubahan status.
Baiklah, mari kita lihat: Untuk setiap komponen DataSet, kita biasanya menggunakan komponen DataSource untuk merender koneksi ke satu atau beberapa kontrol visualisasi data. Itu saja.
Setiap komponen sumber data memiliki peristiwa OnStateChange, yang dipicu setiap kali status kumpulan data pokok berubah. Tempatkan kode berikut di event handler OnStateChange untuk menampilkan status komponen kumpulan data ADOTable1 saat ini menggunakan judul formulir:
Prosedur TForm1.DataSource1StateChange(Pengirim: TObject);
var ds: tali ;
mulai
kasus ADOTable1.Status
dsTidak Aktif: ds:='Tutup';
dsJelajahi: ds:='Penjelajahan';
dsEdit: ds:='Mengedit';
dsInsert: ds:='Penyisipan data baru';
kalau tidak
ds:='Negara bagian lain'
akhir ;
Keterangan:='ADOTable1 status: ' + ds;
akhir ;