VBscript y ADO – 3704 La operación no está permitida cuando el object está cerrado

Esta function inserta una fila en una database SQL y necesita devolver el número de identidad creado:

Function WriteDatabase(backupTypeID, numImages, folderSize, success, errorMessage, strLogFileName) On Error Resume Next err.clear Set objConnection = CreateObject("ADODB.Connection") Set objRecordSet = CreateObject("ADODB.Recordset") objConnection.Open "Provider=SQLOLEDB;Data Source=xxxx;Initial Catalog=DB;User ID=sa;Password=xxxxxx" sqlquery = "INSERT INTO tblImageCopies (BackupCopyDate, BackupCopyTypeID, NumImages, ImagesFolderSize, Success, ErrorMessage) VALUES (GETDATE(), " & backupTypeID & ", " & numImages & ", " & folderSize & ", " & success & ", " & errorMessage & "); SELECT scope_identity() AS ImageCopyID;" objRecordSet.Open sqlquery,objConnection objRecordSet.MoveFirst WriteDatabase = objRecordSet("ImageCopyID") objRecordSet.Close objConnection.Close If err.number <> 0 Then WriteLog "Error writing to the EHN database - " & err.number & " " & err.description, strLogFileName End If End Function 

Inserta con éxito la fila, pero aparece el post de error '3704 La operación no está permitida cuando el object está cerrado.' cuando intenta devolver el número de identidad en el set de loggings. Cuando ejecuto esta consulta sql directamente en el server, funciona. ¿Alguien capaz de ayudar?

Hago lo mismo (muy parecido de todos modos). Creo que hay dos sets de resultados que regresan, uno para INSERT y otro para SELECT. Intenta llamar a objRecordSet.NextRecordset ().

Use "SET NOCOUNT ON" al comienzo de su consulta

Recibí el error exacto y logré rastrearlo hasta una statement PRINT que me quedaba en mi procedimiento almacenado de SQL Server. Una vez que comencé la statement PRINT, el set de loggings devolvió los resultados sin error.