Mengapa saya tidak bisa mengembalikan kumpulan data menggunakan OLEDB dalam prosedur tersimpan?
Saya pernah menulis sebuah program yang beroperasi pada tabel sementara (fungsi utamanya adalah untuk mengambil 10 record teratas dari setiap kategori).
Prosedur tersimpan menggunakan ODBC untuk terhubung ke database secara normal dan dapat memperoleh hasil yang benar. Namun saat menggunakan oledb untuk menyambung, kumpulan data tidak dapat dikembalikan, dan setelah operasi mengembalikan kumpulan data, pesan kesalahan muncul:
ADODB.Kesalahan kumpulan rekaman '800a0e78'
Operasi yang diminta oleh aplikasi tidak diperbolehkan jika objek ditutup.
Itu membuatku bingung. kenapa begitu?
Hal ini karena terdapat perbedaan antara OLEDB dan ODBC, yaitu ketika ASP memperoleh kumpulan record dari ODBC, ODBC memfilter record yang dibuat dengan membuat tabel.
Atau masukkan ke dalam menghasilkan beberapa kumpulan rekaman yang hanya menempati posisi tetapi tidak dapat melakukan operasi apa pun. Ketika ASP memperoleh kumpulan rekaman dari OLEDB, OLEDB tidak
Kumpulan rekaman ini tidak disaring. Oleh karena itu, kita harus menjalankan set nocount on sebelum mengembalikan kumpulan data ke dalam prosedur tersimpan.
Prosedur tersimpan dilarang mengembalikan kumpulan rekaman; untuk mengembalikan kumpulan rekaman, penghitungan ulang harus dilakukan terlebih dahulu. Dengan cara ini, masalah akan terpecahkan.