Twoje założenie dotyczące parametrów połączenia jest na miejscu
Musisz użyć SQL Server Native Client zamiast SQLOLEDB.1 do obsługi VARCHAR(MAX)
i NVARCHAR(MAX)
typy danych w przeciwnym razie zostaną obcięte z powrotem do odpowiedników SQLOLEDB.
Następnie chcesz używać następujących definicji parametrów
'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