Cara Penanganan Aktivitas Bekerja Sama

Kecuali Anda memprogram di Visual Basic, semua penanganan aktivitas untuk peristiwa Koneksi ion dan Recordset harus diimplementasikan, terlepas dari apakah Anda benar-benar memproses semua peristiwa. Jumlah pekerjaan implementasi yang harus Anda lakukan tergantung pada bahasa pemrograman Anda. Untuk informasi selengkapnya, lihat Instansiasi Peristiwa ADO berdasarkan Bahasa.

Penanganan Aktivitas Berpasangan

Setiap penanganan aktivitas Will memiliki penanganan aktivitas Lengkap terkait. Misalnya, ketika aplikasi Anda mengubah nilai bidang, penanganan aktivitas WillChangeField dipanggil. Jika perubahan dapat diterima, aplikasi Anda membiarkan parameter adStatus tidak berubah dan operasi dilakukan. Ketika operasi selesai, peristiwa FieldChangeComplete memberi tahu aplikasi Anda bahwa operasi telah selesai. Jika berhasil diselesaikan, adStatus berisi adStatusOK; jika tidak, adStatus berisi adStatusErrorsOccurred dan Anda harus memeriksa objek Kesalahan untuk menentukan penyebab kesalahan.

Ketika WillChangeField dipanggil, Anda mungkin menentukan bahwa perubahan tidak boleh dilakukan. Dalam hal ini, atur adStatus ke adStatusCancel. Operasi dibatalkan dan peristiwa FieldChangeComplete menerima nilai adStatus adStatusErrorsOccurred. Objek Kesalahan berisi adErrOperationCancelled sehingga handler FieldChangeComplete Anda tahu bahwa operasi dibatalkan. Namun, Anda perlu memeriksa nilai parameter adStatus sebelum mengubahnya, karena mengatur adStatus ke adStatusCancel tidak berpengaruh jika parameter diatur ke adStatusCantDeny pada entri ke prosedur.

Terkadang operasi dapat meningkatkan lebih dari satu peristiwa. Misalnya, objek Recordset telah memasangkan peristiwa untuk perubahan Bidang dan Perubahan rekaman . Saat aplikasi Anda mengubah nilai Bidang, penanganan aktivitas WillChangeField dipanggil. Jika menentukan bahwa operasi dapat dilanjutkan, penanganan aktivitas WillChangeRecord juga dinaikkan. Jika handler ini juga memungkinkan kejadian berlanjut, perubahan dilakukan dan penanganan aktivitas FieldChangeComplete dan RecordChangeComplete dipanggil. Urutan di mana penanganan aktivitas Will untuk operasi tertentu disebut tidak ditentukan, jadi Anda harus menghindari penulisan kode yang tergantung pada penangan panggilan dalam urutan tertentu.

Jika beberapa peristiwa Will dinaikkan, salah satu peristiwa mungkin membatalkan operasi yang tertunda. Misalnya, ketika aplikasi Anda mengubah nilai Bidang, penanganan aktivitas WillChangeField dan WillChangeRecord biasanya akan dipanggil. Namun, jika operasi dibatalkan di penanganan aktivitas pertama, handler Lengkap terkait segera dipanggil dengan adStatusOperationCancelled. Handler kedua tidak pernah dipanggil. Namun, jika penanganan aktivitas pertama memungkinkan peristiwa dilanjutkan, penanganan aktivitas lainnya akan dipanggil. Jika kemudian membatalkan operasi, kedua Peristiwa lengkap akan dipanggil seperti dalam contoh sebelumnya.

Penanganan Aktivitas Tidak Berpasangan

Selama status yang diteruskan ke peristiwa bukan adStatusCantDeny, Anda dapat menonaktifkan pemberitahuan peristiwa untuk peristiwa apa pun dengan mengembalikan adStatusUnwantedEvent di parameter Status. Misalnya, saat penanganan aktivitas Lengkap dipanggil untuk pertama kalinya, Anda dapat mengembalikan adStatusUnwantedEvent. Anda kemudian hanya akan menerima acara Will . Namun, beberapa peristiwa dapat dipicu karena lebih dari satu alasan. Dalam hal ini, peristiwa akan memiliki parameter Alasan . Ketika Anda mengembalikan adStatusUnwantedEvent, Anda akan berhenti menerima pemberitahuan untuk peristiwa tersebut hanya ketika terjadi karena alasan tertentu tersebut. Dengan kata lain, Anda akan berpotensi menerima pemberitahuan karena setiap kemungkinan alasan bahwa peristiwa tersebut dapat dipicu.

Penanganan aktivitas Single Will dapat berguna ketika Anda ingin memeriksa parameter yang akan digunakan dalam operasi. Anda dapat mengubah parameter operasi tersebut atau membatalkan operasi.

Atau, biarkan Pemberitahuan acara lengkap diaktifkan. Saat penanganan aktivitas Will pertama Anda dipanggil, kembalikan adStatusUnwantedEvent. Anda kemudian hanya akan menerima Acara lengkap .

Penanganan aktivitas Lengkap Tunggal dapat berguna untuk mengelola operasi asinkron. Setiap operasi asinkron memiliki peristiwa Selesai yang sesuai.

Misalnya, dibutuhkan waktu lama untuk mengisi objek Recordset besar. Jika aplikasi Anda ditulis dengan tepat, Anda dapat memulai Recordset.Open(...,adAsyncExecute) operasi dan melanjutkan pemrosesan lainnya. Anda akhirnya akan diberi tahu ketika Recordset diisi oleh peristiwa ExecuteComplete .

Penanganan Aktivitas Tunggal dan Beberapa Objek

Fleksibilitas bahasa pemrograman seperti Visual C++ memungkinkan Anda memiliki satu peristiwa proses penanganan aktivitas dari beberapa objek. Misalnya, Anda dapat memiliki satu peristiwa proses Putuskan sambungan penanganan aktivitas dari beberapa objek Koneksi ion. Jika salah satu koneksi berakhir, penanganan aktivitas Putuskan sambungan akan dipanggil. Anda dapat mengetahui koneksi mana yang menyebabkan peristiwa karena parameter objek penanganan aktivitas akan diatur ke objek Koneksi ion yang sesuai.

Catatan

Teknik ini tidak dapat digunakan dalam Visual Basic karena bahasa tersebut hanya dapat menghubungkan satu objek dengan penanganan aktivitas.

Lihat Juga

Ringkasan Penanganan Aktivitas ADO
Instansiasi Peristiwa ADO berdasarkan Bahasa
Parameter Peristiwa
Jenis Peristiwa