4

nvarchar(max)Delphi6とADOを使用してSQLServer2008データベースからフィールドを読み取る必要があります。Unicodeテキストは問題なく処理できますが、ADOコンポーネントは、文字列を確認する前に、文字列をコードページに「事前変換」しているようです。

TBlobFieldとしてフィールドにアクセスしようとしましたが、変換されたバージョンも表示されます。5つの漢字を表す10バイトのデータを格納しており、BlobSizeは5を返します。

誰かが、変換せずにblobフィールドから生のメモリを取得する方法を提案できますか?

4

1 に答える 1

3

見つけた。非常に単純であることが判明しました。通常のフィールドであるかのようにデータセットを開き、次の手順を実行します。

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

(WSBufferはWideStringタイプです)。

于 2010-07-07T07:24:43.537 に答える