我正在使用德尔福 XE2。我的代码从 SQL-Server 2008 R2 数据库中提取数据。返回的数据是一个nvarchar(max)
包含 1,055,227 字节数据的字段。我使用以下代码将字段数据保存到文件中:
procedure WriteFieldToFile(FieldName: string; Query: TSQLQuery);
var
ss: TStringStream;
begin
ss := TStringStream.Create;
try
ss.WriteString(Query.FieldByName(FieldName).AsString);
ss.Position := 0;
ss.SaveToFile('C:\Test.txt');
finally
FreeAndNil(ss);
end;
end;
当我在十六进制查看器中检查文件时,前 524,287 个字节(正好是 1/2 兆)看起来是正确的。其余字节(524,288 到 1,055,227)都是空值(#0),而不是原始数据。
这是将字符串字段从 a 保存TSQLQuery
到文件的正确方法吗?我选择使用TStringStream
是因为我最终会添加代码来对流上的数据执行其他操作,而使用TFileStream
.