Hari ini mari kita bicara tentang beberapa metode objek Recordset.
1. Metode AddNew membuat record baru yang dapat memperbarui objek Recordset.
kumpulan catatan.TambahkanDaftar Bidang Baru, Nilai
Daftar Bidang Opsional. Nama tunggal, kumpulan nama, atau posisi ordinal bidang dalam rekaman baru.
Nilai bersifat opsional. Satu atau kumpulan nilai untuk suatu bidang di catatan baru. Jika Bidang adalah larik, Nilai juga harus berupa larik dengan jumlah anggota yang sama, jika tidak maka akan terjadi kesalahan. Urutan nama field harus sesuai dengan urutan nilai field pada setiap array.
Kami biasanya begitu
rs.tambahkan baru
rs("xx")=xx
rs("xx")=xx
rs.update
Perhatikan bahwa dalam mode pembaruan langsung (penyedia segera menulis perubahan ke sumber data pokok saat metode Pembaruan dipanggil), memanggil metode AddNew tanpa parameter akan menyetel properti EditMode ke adEditAdd. Penyedia menyimpan setiap perubahan pada nilai bidang secara lokal. Panggil metode Update untuk meneruskan catatan baru ke database dan mereset properti EditMode ke adEditNone. Jika parameter Fields dan Values dilewatkan, ADO segera meneruskan record baru ke database (tanpa memanggil Update), dan nilai properti EditMode tidak berubah (adEditNone).
Anda mungkin bertanya apa perbedaan antara menggunakan metode AddNew ADO di ASP dan langsung menggunakan pernyataan "Sisipkan ke..."? Cara mana yang lebih baik? Jawaban: Metode AddNew ADO hanya merangkum pernyataan "Sisipkan ke dalam". Oleh karena itu, ketika mengoperasikan data dalam jumlah besar, menggunakan pernyataan SQL secara langsung akan sangat mempercepat akses data karena mengurangi waktu "penerjemahan" ADO.
2. Metode hapus menghapus rekaman atau grup rekaman saat ini.
recordset.Delete AffectRecords
AffectRecords Nilai AffectEnum menentukan jumlah record yang dipengaruhi oleh metode Delete. Nilai ini dapat berupa salah satu dari konstanta berikut.
AdAffectDefault Saat Ini. Hapus hanya catatan saat ini.
AdAffectGroup menghapus rekaman yang memenuhi pengaturan properti Filter saat ini. Untuk menggunakan opsi ini, properti Filter harus diatur ke salah satu konstanta valid yang telah ditentukan sebelumnya.
adAffectAll menghapus semua catatan.
adAffectAllChapters Hapus semua catatan subset.
Menggunakan mode pembaruan segera akan menyebabkan penghapusan segera dalam database, jika tidak, catatan akan ditandai untuk dihapus dari cache dan penghapusan sebenarnya akan terjadi ketika metode Pembaruan dipanggil.
3. Metode Update menyimpan semua perubahan yang dilakukan pada rekaman objek Recordset saat ini.
kumpulan data.Perbarui Bidang, Nilai
Bidang bersifat opsional. Tipe varian, mewakili satu nama; atau tipe varian array, mewakili nama dan nomor urut posisi field (satu atau lebih) yang perlu diubah.
Nilai bersifat opsional. Tipe varian, mewakili nilai tunggal; atau tipe varian array, mewakili nilai bidang (tunggal atau ganda) dalam rekaman baru.
Jika Anda ingin membatalkan perubahan apa pun yang dilakukan pada data saat ini atau membuang data yang baru ditambahkan, Anda harus memanggil metode CancelUpdate.
4. Metode Batalkan Pembaruan
kumpulan rekaman.Batalkan Pembaruan
Gunakan metode CancelUpdate untuk membatalkan perubahan apa pun pada rekaman saat ini atau membuang rekaman yang baru ditambahkan. Perubahan pada record saat ini atau record baru tidak dapat dibatalkan setelah metode Update dipanggil. Jika record baru ditambahkan ketika metode CancelUpdate dipanggil, maka record saat ini sebelum AddNew dipanggil akan menjadi record saat ini lagi. Jika record saat ini belum diubah atau record baru telah ditambahkan, pemanggilan metode CancelUpdate akan menghasilkan kesalahan.
5. Metode Find mencari Recordset untuk record yang memenuhi kriteria yang ditentukan. Jika kriteria terpenuhi, maka posisi recordset ditetapkan pada record yang ditemukan, jika tidak maka posisinya ditetapkan pada akhir recordset.
Temukan (kriteria, SkipRows, searchDirection, mulai)
kriteria Sebuah string yang berisi pernyataan yang menentukan nama kolom, operator perbandingan, dan nilai untuk pencarian.
SkipRows Opsional, nilai bilangan bulat panjang, yang nilai defaultnya nol, yang menentukan offset baris saat ini atau memulai bookmark untuk memulai pencarian.
searchDirection Nilai SearchDirectionEnum opsional yang menentukan apakah pencarian harus dimulai pada baris saat ini atau baris valid berikutnya. Nilainya dapat berupa adSearchForward atau
adSearchBackward. Apakah pencarian berakhir di awal atau akhir kumpulan data ditentukan oleh nilai searchDirection.
start Opsional, varian bookmark, digunakan sebagai posisi awal pencarian.
kriteria “Operator perbandingan” dapat berupa “>” (lebih besar dari), “<” (kurang dari), “=” (sama dengan), “>” (lebih besar atau sama dengan), “<=” (kurang dari atau sama dengan), " <>"
(tidak sama dengan) atau "suka" (kesesuaian pola). Nilai dalam kriteria dapat berupa string, angka floating point, atau tanggal. Nilai string dibatasi oleh tanda kutip tunggal (misalnya "state = 'WA'").
Nilai tanggal dibatasi oleh "#" (simbol numerik) (misalnya "tanggal_mulai > #7/22/97#").
Perlu dicatat bahwa find tidak mendukung banyak bidang. Tapi itu bisa dicapai dengan menggunakan filter. "name='abc'"AND "city='sh'" tidak diperbolehkan
6. Metode move memindahkan posisi record saat ini pada objek Recordset
kumpulan rekaman. Pindahkan NumRecords, Mulai
NumRecords Ekspresi bilangan bulat panjang bertanda tangan yang menentukan jumlah rekaman yang akan dipindahkan dari posisi rekaman saat ini.
Mulai opsional, tipe string atau varian, digunakan untuk menghitung bookmark. Bisa juga menjadi salah satu dari nilai berikut:
AdBookmarkDefault Saat Ini. Mulai dari rekor saat ini.
AdBookmarkFirst dimulai dengan catatan pertama.
AdBookmarkLast dimulai dari catatan terakhir.
Hal yang perlu diperhatikan adalah:
(1) Jika parameter NumRecords lebih besar dari nol, posisi rekaman saat ini akan bergerak maju (mendekati akhir kumpulan rekaman). Jika NumRecords kurang dari nol, posisi rekaman saat ini akan dipindahkan ke belakang (menuju awal kumpulan rekaman).
(2) Memanggil metode Move dari objek Recordset yang kosong akan menghasilkan kesalahan.
(3) Jika panggilan Pindahkan memindahkan posisi rekaman saat ini ke sebelum rekaman pertama, ADO akan menempatkan rekaman saat ini sebelum rekaman pertama dari kumpulan rekaman (BOF adalah True). Mencoba untuk bergerak mundur ketika properti BOF sudah True akan menghasilkan kesalahan; jika panggilan Move memindahkan posisi record saat ini setelah tail record, ADO menempatkan record saat ini setelah tail record dari recordset (EOF adalah True). Mencoba untuk bergerak maju ketika atribut EOF sudah bernilai True akan menghasilkan kesalahan.
7. Metode MoveFirst, MoveLast, MoveNext dan MovePrevious berpindah ke record pertama, terakhir, berikutnya atau sebelumnya dalam objek Recordset yang ditentukan dan menjadikan record tersebut sebagai record saat ini.
kumpulan rekaman.{PindahPertama |.PindahTerakhir |.PindahBerikutnya |.PindahSebelumnya}
Hal yang perlu diperhatikan adalah:
(1) Gunakan metode MoveNext untuk memindahkan record saat ini maju satu record (menuju bagian bawah Recordset). Jika record terakhir adalah record saat ini dan metode MoveNext dipanggil, ADO menetapkan record saat ini setelah record ekor dari Recordset (EOF adalah True). Mencoba untuk bergerak maju ketika atribut EOF sudah bernilai True akan menghasilkan kesalahan.
(2) Gunakan metode MovePrevious untuk memindahkan posisi rekaman saat ini ke belakang sebanyak satu rekaman (ke arah atas kumpulan rekaman). Objek Recordset harus mendukung pergerakan kursor mundur; jika tidak, pemanggilan metode akan menghasilkan kesalahan. Jika record pertama adalah record saat ini dan metode MovePrevious dipanggil, ADO menetapkan record saat ini sebelum record pertama dari Recordset (BOF adalah True). Jika atribut BOF bernilai True, pergerakan mundur akan menghasilkan kesalahan.
8. Metode Clone membuat duplikat objek Recordset yang identik dengan objek Recordset yang ada. Secara opsional tentukan bahwa replika bersifat hanya-baca.
Setel rstDuplikat = rstOriginal.Clone
Variabel objek duplikat pertama yang mengidentifikasi objek duplikat Recordset yang sedang dibuat.
Variabel objek pertamaOriginal mengidentifikasi objek Recordset yang akan disalin.
Gunakan metode Klon untuk membuat banyak salinan objek Recordset, yang berguna jika Anda ingin menyimpan beberapa rekaman terkini dalam grup rekaman tertentu. Penggunaan metode Clone jauh lebih efisien dibandingkan membuat dan membuka objek Recordset baru dengan definisi yang sama dengan definisi awal.
Artinya
rs.open exec,sambungan,1,1
rs2.open exec,sambungan,1,1
Itu harus ditulis ulang seperti ini
rs.open exec,sambungan,1,1
rs2=rs.clone
perlu diperhatikan bahwa:
(1) Catatan terkini dari salinan yang baru dibuat akan ditetapkan sebagai catatan pertama.
(2) Penutupan Recordset asli tidak menutup salinannya, dan penutupan salinan tidak akan menutup Recordset asli atau salinan lainnya.
9. Metode Close menutup objek yang terbuka dan semua objek terkait.
objek.Tutup
Hal yang perlu diperhatikan adalah:
(1) Gunakan metode Tutup untuk menutup objek Recordset untuk melepaskan semua sumber daya sistem terkait. Menutup suatu objek tidak menghapusnya dari memori; Anda dapat mengubah pengaturan propertinya dan
membukanya lagi nanti. Untuk menghapus objek sepenuhnya dari memori, setel variabel objek ke Tidak Ada.
(2) Jika Anda mengedit dalam mode pembaruan langsung, memanggil metode Tutup akan menghasilkan kesalahan, dan Anda harus terlebih dahulu memanggil metode Perbarui atau Batalkan Pembaruan.
10. Metode terbuka, mengapa kami mengatakan ini yang terakhir? Karena metode atribut sebelumnya tidak jelas, kami tidak akan memahami parameter CursorType.
kumpulan rekaman.Sumber Terbuka, ActiveConnection, CursorType, LockType, Opsi
Objek Recordset dapat terhubung ke objek Command melalui properti Source. Parameter Sumber dapat berupa nama objek Perintah, perintah SQL, nama tabel data tertentu, atau Prosedur Tersimpan. Jika parameter ini dihilangkan, sistem akan menggunakan properti Source dari objek Recordset.
ActiveConnection
Recordset dapat terhubung ke objek Connection melalui properti ActiveConnection. ActiveConnection di sini dapat berupa objek Connection atau serangkaian parameter string yang berisi informasi koneksi
database
(ConnectionString).CursorType
Parameter CursorType dari metode Open pada objek Recordset menunjukkan tipe kursor apa yang akan digunakan untuk memulai data, termasuk adOpenForwardOnly, adOpenKeyset, adOpenDynamic dan ad
OpenStatic, yang dijelaskan sebagai berikut:
---------- ------- ---------------------------- -----
Deskripsi
nilai konstanta konstan-
-------------------------------------------------- ----------
adOpenForwardOnly 0 Nilai default, memulai kursor yang hanya dapat bergerak maju (Forward Only).
adOpenKeyset 1 memulai kursor tipe Keyset.
adOpenDynamic 2 memulai kursor tipe Dinamis.
adOpenStatic 3 memulai kursor tipe Statis.
--------------------------------------------------- -----------
Jenis kursor di atas akan secara langsung mempengaruhi semua properti dan metode objek Recordset. Daftar berikut menjelaskan perbedaan di antara keduanya.
Properti kumpulan rekaman adOpenForwardOnly adOpenKeyset adOpenDynamic adOpenStatic
AbsolutePage Tidak didukung Tidak didukung Dapat dibaca dan ditulisi Dapat dibaca dan ditulis
AbsolutePosition Tidak didukung Tidak didukung Dapat dibaca dan ditulisi Dapat dibaca dan ditulis
BOF Baca-saja Baca-saja Baca-saja
Tipe Kursor Baca-tulis Baca-tulis Baca-tulis Baca-tulis
EOF Baca-saja Baca -hanya Baca saja
Filter Baca dan tulis Baca dan tulis Baca dan tulis Baca dan tulis
LockType Baca dan tulis Baca dan tulis Baca dan tulis Baca dan tulis
Jumlah Halaman Tidak didukung Tidak didukung Baca saja Baca saja
Ukuran Halaman Baca dan tulis Baca dan tulis Baca dan tulis Baca Write
RecordCount Tidak didukung Tidak didukung Read-only Read-only
AddNew Didukung Didukung Didukung Didukung
CancelBatch Didukung Didukung Didukung Didukung CancelUpdate Didukung Didukung Didukung Didukung
Tutup Didukung
Didukung Didukung Didukung Didukung Didukung Didukung Didukung
Hapus Didukung Didukung Didukung Didukung Didukung Didukung Didukung Didukung Didukung Didukung
Pindah Tidak didukung Didukung Didukung Didukung Didukung
MoveFirst Didukung Didukung Didukung Didukung
Didukung MoveLast Tidakdidukung Didukung Didukung
Dukungan Dukungan MoveNext Dukungan Dukungan Dukungan
MovePrevious Tidak mendukung Dukungan Dukungan Dukungan
Terbuka Dukungan Dukungan Dukungan
Pembaruan Dukungan Dukungan Dukungan Dukungan Dukungan
PembaruanBatch Dukungan Dukungan Dukungan
------ ---------------------- ---------------------------- ---------
Parameter LockType dari metode Open objek Recordset menunjukkan bahwa tipe Lock dihilangkan, sistem akan menggunakan properti LockType dari objek Recordset sebagai nilai default. Parameter LockType mencakup adLockReadOnly, adLockPrssimistic, adLockOptimistic dan adLockBatchOptimistic, dll., yang dijelaskan sebagai berikut:
Deskripsi nilai konstan
--------------------------- --------------------- --------------------------------
adLockReadOnly 1 Nilai default, objek Recordset dimulai dalam pembacaan -mode hanya dan tidak dapat menjalankan metode AddNew, Update dan Delete
adLockPrssimistic 2 Ketika sumber data sedang diperbarui, sistem akan mengunci sementara tindakan pengguna lain untuk menjaga konsistensi data.
adLockOptimistic 3 Ketika sumber data diperbarui, sistem tidak akan mengunci tindakan pengguna lain, dan pengguna lain dapat menambah, menghapus, dan mengubah data.
adLockBatchOptimistic 4 Saat sumber data diperbarui, pengguna lain harus mengubah atribut CursorLocation menjadi adUdeClientBatch untuk menambah, menghapus, atau mengubah data.
Hal yang perlu diperhatikan adalah:
Jika sumber data tidak mengembalikan rekaman, penyedia menetapkan properti BOF dan EOF ke True dan tidak menentukan posisi rekaman saat ini. Jika jenis kursor mengizinkannya, data baru masih dapat ditambahkan ke objek Recordset yang kosong.