J'ai une ancienne application VB6 qui était connectée à la database de production sybase. La database a récemment été migrée vers SQL Server 2008 R2 et maintenant, je suis en train de mettre à jour l'application pour qu'elle rest opérationnelle. L'erreur que j'obtiens est " L'opération n'est pas autorisée lorsque l'object est fermé ".
C'est la structure du code sur VB6:
Dim sql as Ssortingng Dim connSsortingng as Ssortingng Dim conn as New ADODB.Connection connSsortingng = "Provider=SQLNCLI10.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=CatalogName;Data Source=Production_Server_Name;" sql = "EXEC sp_name @param1, @param2, @param3, @param4" conn.Open connSsortingng Dim Cmd as ADODB.Command Set Cmd = New ADODB.Command Set Cmd.ActiveConnection = conn Cmd.CommandText = sql Cmd.CommandType = adCmdText Cmd.CommandTimeOut = 300 Dim rs as ADODB.Recordset Set rs = New ADODB.Recordset rs.Open sql, conn --> The Code fails on this line !!! Set rs = Cmd.Execute() If rs Is Nothing Or IsNull(rs) Then Set rs = Nothing bla bla bla bla bla End
Le code de procédure stockée est le suivant:
CREATE PROCEDURE sp_name ( @param1 as integer, @param2 as integer, @param3 as integer, @param4 as nvarchar(150) ) AS SET NOCOUNT ON -- All the code goes here RETURN
Notes de structure de code :
Validations que j'ai déjà faites / Suggestions déjà essayées sans succès :
Tout mot pour mettre en lumière cette erreur de sujet soit vraiment apprécié et la bonne réponse acceptée immédiatement.
Merci d'avance
Vous devez d'abord ouvrir la connection.
Dim rs as ADODB.Recordset Set rs = New ADODB.Recordset conn.Open() <-- missing this rs.Open sql, conn Set rs = Cmd.Execute()