我使用Delphi XE7和FireDAC来访问SQLite。
当我将数据放入TEXT字段时,任何尾随空格或#0字符都会被截断。
我是否可以在SQLite或FireDAC中更改它以保留尾随空格?
// The trailing spaces after Command don't come back from SQLite.
fFireDACQuery.ParamByName(kSQLFieldScriptCommands).AsString := 'Command ';
答案 0 :(得分:2)
禁用StrsTrim属性。此属性描述为:
<强> TFDFormatOptions.StrsTrim 强>
控制从字符串值和零中删除尾随空格 来自二进制值的字节。
似乎您希望存储二进制数据而不是文本。如果这是正确的,最好定义您的字段数据类型,例如如BINARY[255]为固定长度二进制字符串255个字节(255是您使用的ShortString的最大长度)。
您将以这种方式访问此类字段的参数值:
var
Data: RawByteString;
begin
ReadByteDataSomehow(Data);
FDQuery.FormatOptions.StrsTrim := False;
FDQuery.SQL.Text := 'INSERT INTO MyTable (MyBinaryField) VALUES (:MyBinaryData)';
FDQuery.ParamByName('MyBinaryData').AsByteStr := Data;
FDQuery.ExecSQL;
end;