SQLite FireDAC尾随空格

时间:2014-10-28 15:47:03

标签: sqlite delphi firedac

我使用Delphi XE7和FireDAC来访问SQLite。

当我将数据放入TEXT字段时,任何尾随空格或#0字符都会被截断。

我是否可以在SQLite或FireDAC中更改它以保留尾随空格?

// The trailing spaces after Command don't come back from SQLite.
fFireDACQuery.ParamByName(kSQLFieldScriptCommands).AsString := 'Command          ';  

1 个答案:

答案 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;