sql >> Database >  >> RDS >> Sqlserver

bewerking niet toegestaan ​​wanneer het object is gesloten bij het uitvoeren van een meer geavanceerde query

Dit is een veelvoorkomend probleem dat wordt veroorzaakt doordat het aantal rijen wordt geïnterpreteerd als uitvoer van een opgeslagen procedure bij gebruik van ADODB met SQL Server.

Om dit te voorkomen, vergeet niet om

. in te stellen
SET NOCOUNT ON;

in uw Opgeslagen Procedure zal dit voorkomen dat ADODB een gesloten recordset retourneert, of als u dit om welke reden dan ook niet wilt doen (niet zeker waarom, aangezien u altijd @@ROWCOUNT kunt gebruiken om het aantal rijen terug te geven), kunt u

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

die de volgende ADODB.Recordset . retourneert als ADODB heeft gedetecteerd dat er een wordt geretourneerd door de Stored Procedure (het is misschien het beste om rs.State <> adStateClosed te controleren bij het omgaan met meerdere ADODB.Recordset-objecten).




  1. Hoge beschikbaarheid van SQL Server:nieuwe schijf toevoegen aan een bestaande failover-clusterinstantie

  2. Hoe MySQL binaire logbestanden (BinLog) te lezen met mysqlbinlog

  3. 5 beveiligingsvoordelen van cloudgebaseerde oplossingen voor databasebewaking

  4. Supersnel de opdrachtregel van de mysql-database importeren