sql >> Databáze >  >> RDS >> Sqlserver

operace není povolena, když je objekt zavřený při spuštění pokročilejšího dotazu

Toto je běžný problém způsobený tím, že počty řádků jsou interpretovány jako výstup z uložené procedury při použití ADODB se serverem SQL.

Abyste tomu zabránili, nezapomeňte nastavit

SET NOCOUNT ON;

ve vaší uložené proceduře to přestane ADODB vracet uzavřenou sadu záznamů, nebo pokud to z jakéhokoli důvodu nechcete udělat (nejste si jisti proč, protože vždy můžete použít @@ROWCOUNT pro vrácení počtu řádků zpět), můžete použít

'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()

který vrátí další ADODB.Recordset pokud ADODB zjistil, že uložená procedura vrací jednu (možná by bylo nejlepší zkontrolovat rs.State <> adStateClosed při práci s více objekty ADODB.Recordset).




  1. Aktualizujte více tabulek v SQL Server pomocí INNER JOIN

  2. Jak povolit protokol dotazů MySQL?

  3. Import databáze do MySQL nebo MariaDB

  4. Konfigurace skupin dostupnosti AlwaysOn – část 2