T-SQL (varchar(max) vs CLR (chaîne, Chaîne -, SqlChars)?

J'ai un problème, que je ne peux pas résoudre. Je suis à l'aide de SQL Server 2005, C# CLR pour l'aide extérieure de la dll. Le problème, c'est à longueur de paramètre. J'ai besoin de l'utiliser comme paramètre de fonction de type varchar(max). Si le code C# j'utilise string, SqlSring, je ne peux pas utiliser le T-SQL de type varchar(max), juste varchar(4000) de nvarchar(4000). J'ai besoin de le dire, qui peuvent être des situations, quand j'ai besoin d'utiliser plus de 4000 symboles, donc j'ai besoin de savoir, quel type C# j'ai besoin d'utiliser pour varchar(max).

J'ai lu beaucoup d'articles, et plusieurs d'entre eux disent que je peux utiliser SqlChars. Mais! J'ai les manipulations de chaînes de caractères. Comment puis-je avoir des actions avec string ou SqlString et ensuite de les convertir à SqlChars? (Il est possible SqlChars.ToString() ou SqlChars.ToSqlString()).

Je n'ai pas trouvé de code C# pour cela.

  • Un varchar(max) chaîne à l'aide de sa capacité maximale ne sera pas chargeable dans un CLR chaîne, car elle permettra l'évacuation de l'espace d'adressage. Pouvez-vous être plus explicite sur ce que les actions que vous voulez exécuter à l'encontre de ces chaînes?
  • - Je convertir SQL de type varchar et envoyer cette valeur à l'extérieur de la dll. Que, faire les manipulations avec des et de retour à SQL Server. Maintenant, j'utilise SQL/vchar(4000) et C#/chaîne. J'ai besoin de plus de 4000 symboles.
  • J'étais sous l'impression à la fois de SQL Server varchar(max) ainsi que d'un .NET string exemple, pourraient être jusqu'à 2 GO en taille....
  • comme il s'avère, une varchar(max) variable peut contiennent plus de 2 go. Mais j'ai surtout travailler de l'autre côté. Certainement sous 32 bits CLR, vous ne pouvez pas allouer un objet de 2 go, et je pense que vous pouvez la lutte encore sous 64 bits.
InformationsquelleAutor Chaki_Black | 2011-09-28