我正在使用带有 FireDAC 的 Delphi XE7 来访问 SQLite。
当我将数据放入 TEXT 字段时,任何尾随空格或 #0 字符都会被截断。
我可以在 SQLite 或 FireDAC 中更改某些内容以保留尾随空格吗?
// The trailing spaces after Command don't come back from SQLite.
fFireDACQuery.ParamByName(kSQLFieldScriptCommands).AsString := 'Command ';
最佳答案
禁用 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;
关于SQLite FireDAC 尾随空格,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26612620/