Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Renvoi de varchar(max) Paramètre de sortie de la procédure stockée tronquée à 4000 caractères

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