sql - sua - error 3704 en tiempo de ejecucion vb6
VBscript y ADO-3704 La operación no está permitida cuando el objeto está cerrado (3)
Esta función inserta una fila en una base de datos 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=x.x.x.x;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 mensaje de error ''3704 La operación no está permitida cuando el objeto está cerrado.'' cuando intenta devolver el número de identidad en el conjunto de registros. Cuando ejecuto esta consulta sql directamente en el servidor, funciona. ¿Alguien capaz de ayudar?
Hago lo mismo (muy parecido de todos modos). Creo que hay dos conjuntos 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 declaración PRINT que me quedaba en mi procedimiento almacenado de SQL Server. Una vez que comencé la declaración PRINT, el conjunto de registros devolvió los resultados sin error.