2010-07-06 9 views
4

Je dois lire un champ nvarchar(max) à partir d'une base de données SQL Server 2008 à l'aide de Delphi 6 et ADO. Je peux très bien gérer le texte unicode, mais il semble que le composant ADO soit en train de "pré-convertir" la chaîne en page de codes avant même que je ne la consulte.Lecture d'une chaîne Unicode à partir de SQL Server avec Delphi 6

J'ai essayé d'accéder au terrain comme TBlobField mais il me donne la version convertie ainsi: Je suis 10 octets de stockage de données représentant 5 caractères et retourne BlobSize 5.

Quelqu'un pourrait-il suggérer une façon obtenir la mémoire brute du champ blob sans l'avoir converti?

+0

Merci pour les modifications, Marc. Je devrais vraiment avoir lu ce message avant de le poster. – Stephane

Répondre

3

Je l'ai trouvé. Il est avéré être très simple: Ouvrez l'ensemble de données comme si elle était un champ normal et procédez comme suit:

AQuery.FieldByName('LocalText').SetFieldType(ftWideString); 
WSBuffer := (AQuery.FieldByName('LocalText') as TWideStringField).Value; 

(WSBuffer est un type de WideString).

Questions connexes