Ihre Vermutung bezüglich der Verbindungszeichenfolge ist genau richtig
Sie müssen den SQL Server Native Client anstelle von SQLOLEDB.1 verwenden, um VARCHAR(MAX)
zu unterstützen und NVARCHAR(MAX)
Datentypen andernfalls werden sie auf ihre SQLOLEDB-Äquivalente zurückgeschnitten.
Sie möchten dann die folgenden Parameterdefinitionen verwenden
'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