接続文字列に関するあなたの仮定は的を射ています
VARCHAR(MAX)
をサポートするには、SQLOLEDB.1 の代わりに SQL Server Native Client を使用する必要があります。 および NVARCHAR(MAX)
それ以外のデータ型は、SQLOLEDB に相当するものに切り捨てられます。
次に、次のパラメーター定義を使用する必要があります
'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