La tua ipotesi sulla stringa di connessione è azzeccata
È necessario utilizzare SQL Server Native Client anziché SQLOLEDB.1 per supportare VARCHAR(MAX)
e NVARCHAR(MAX)
tipi di dati altrimenti verranno troncati di nuovo in equivalenti SQLOLEDB.
Quindi vuoi utilizzare le seguenti definizioni dei parametri
'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