sql >> Database teknologi >  >> RDS >> Sqlserver

handling ikke tilladt, når objektet er lukket, når der køres mere avanceret forespørgsel

Dette er et almindeligt problem forårsaget af rækkeantal, der fortolkes som output fra en lagret procedure, når du bruger ADODB med SQL Server.

For at undgå dette, husk at indstille

SET NOCOUNT ON;

i din Stored Procedure vil dette stoppe ADODB med at returnere et lukket postsæt, eller hvis du af en eller anden grund ikke ønsker at gøre dette (ikke sikker på hvorfor, da du altid kan bruge @@ROWCOUNT for at sende rækkeoptællingen tilbage), kan du bruge

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

som returnerer det næste ADODB.Recordset hvis ADODB har registreret en, der returneres af den lagrede procedure (kan være bedst at kontrollere rs.State <> adStateClosed ved håndtering af flere ADODB.Recordset-objekter).




  1. Skift tabel for at ændre standardværdien for kolonnen

  2. PDOException "kunne ikke finde driver"

  3. Kan ikke oprette forbindelse til databaseserver (mysql workbench)

  4. Sådan aktiveres SSL i PostgreSQL