Votre hypothèse sur la chaîne de connexion est exacte
Vous devez utiliser SQL Server Native Client au lieu de SQLOLEDB.1 pour prendre en charge le VARCHAR(MAX)
et NVARCHAR(MAX)
types de données, sinon ils seront tronqués vers leurs équivalents SQLOLEDB.
Vous souhaitez alors utiliser les définitions de paramètres suivantes
'For varchar(max) OUTPUT use;
Call cmd.Parameters.Append(cmd.CreateParameter("@detail", adLongVarChar, adParamOutput, -1, strDetail))
'For nvarchar(max) OUTPUT use;
Call cmd.Parameters.Append(cmd.CreateParameter("@detail", adLongVarWChar, adParamOutput, -1, strDetail))
'** Constants **
' adLongVarChar = 201
' adLongVarWChar = 203
' adParamOutput = 2