为什么符号char(10)在行末会丢失?

为什么符号char(10)在行末会丢失?

问题描述:

在我的情况下,当我在德尔福领域时,我在行尾输了一个符号$ A。我认为,问题在于FireDac组件。我使用Delphi 10.1柏林和Sqlite(我不知道一个版本)。当我启动下面的程序时,我的结果是3!= 4在消息中。 这是代码:为什么符号char(10)在行末会丢失?

FD := TFDQuery.Create(nil); 
FD.Connection := FDConnection1; 
FD.ExecSQL('create table t2 (f2 text)'); 
FD.ExecSQL('insert into t2 values(''123''||char(10))'); 
FD.Open('select f2, length(f2) as l from t2'); 
ShowMessage(IntToStr(Length(FD.FieldByName('f2').AsString))+'!='+FD.FieldByName('l').AsString); 

Last symbol $ A lost。 可能有人解释我这种奇怪的行为。

+0

没有dublicate,我不想连接字符串。我失去了一个符号$ A。 –

+0

非常感谢。您的评论确实对我有帮助。有用。现在符号就在它的位置上。 –

您需要关闭TFDQuery.FormatOptions.StrsTrim属性:

控制从二进制值
尾随字符串值空间和零个字节删除...
SQLite的,这个属性是适用于所有字符串列