Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

operasi tidak diizinkan ketika objek ditutup saat menjalankan kueri yang lebih maju

Ini adalah masalah umum yang disebabkan oleh jumlah baris yang ditafsirkan sebagai keluaran dari Prosedur Tersimpan saat menggunakan ADODB dengan SQL Server.

Untuk menghindari ini, ingatlah untuk mengatur

SET NOCOUNT ON;

dalam Prosedur Tersimpan Anda, ini akan menghentikan ADODB mengembalikan recordset tertutup, atau jika karena alasan apa pun Anda tidak ingin melakukan ini (tidak yakin mengapa karena Anda selalu dapat menggunakan @@ROWCOUNT untuk melewati hitungan mundur), Anda dapat menggunakan

'Return the next recordset, which will be the result of the Stored Procedure, not 
'the row count generated when SET NOCOUNT OFF (default).
Set rs = rs.NextRecordset()

yang mengembalikan ADODB.Recordset berikutnya jika ADODB telah mendeteksi satu dikembalikan oleh Prosedur Tersimpan (mungkin yang terbaik untuk memeriksa rs.State <> adStateClosed saat menangani beberapa objek ADODB.Recordset).




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Fungsi Matematika SQL Server (Daftar Lengkap)

  2. "Kesalahan fatal koneksi internal" Saat Menjalankan Prosedur Tersimpan Secara Asli di SQL Server 2019 (Bug yang Diketahui)

  3. Contoh sys.dm_sql_referenced_entities() SQL Server Mengembalikan Entitas yang Mereferensikan Server Tertaut

  4. Apakah mungkin menggunakan agregat yang ditentukan pengguna (clr) dengan fungsi jendela (over)?

  5. Jalankan semua file SQL dalam direktori