0

誰でも助けることができますか?私は古い Delphi7 プロジェクトを保持していますが、次の問題があります。Unicode 文字列が含まれている場合、BLOB フィールド値を格納するにはどうすればよいですか? 私は試した:

var
  str: WideString;
begin
  ...
  str := WideString(Fields[1].AsString); - but I get empty string
  ...

  ...
  str := VarToWideStr(Fields[1].AsVariant); - but I get "(BLOB)" result in str varible.
  ...
end;

私の解決策: コードの使用法:

...
stream := TMemoryStream.Create;
try
  Fields[1].SaveToStream(stream);
  ss := MemStreamToWStr(stream);
finally
  stream.Destroy;
end;
...

そして機能:

function TSnsFrame.MemStreamToWStr(Mstream: TMemoryStream): WideString;
begin
  Mstream.Seek(0, soFromBeginning);
  SetLength(Result, Mstream.size div 2);
  MStream.ReadBuffer(Result[1], Mstream.size);
end;
4

1 に答える 1

0

をご覧くださいTDataSet.CreateBlobStream()TStreamBLOB フィールドの生データの読み取り/書き込みに使用できる を返します。

于 2013-08-09T16:39:14.903 に答える