有没有办法自动删除文本字段中的所有前导和尾随空格

Jua*_*nmi 4 database delphi ado

在使用TADODataSet组件访问Access数据库的Delphi应用程序中,有什么方法可以在将记录写入磁盘时从文本字段中删除前导和尾随空格?或者在检索数据时,但不修改我的所有查询.

我的意思是在ADO引擎中,没有编写自己Trim()BeforePost每个表上使用.

Joh*_*ica 6

有你提出的所有限制......不

我的建议是只编写一次BeforePost事件,并将所有表链接到相同的beforepost事件.

在objectinspector中

Table1.BeforePost:= TrimFieldsBeforePost;
Table2.BeforePost:= TrimFieldsBeforePost;
....
Run Code Online (Sandbox Code Playgroud)

在你的代码中

procedure TMyForm.TrimFieldsBeforePost(DataSet: TDataSet);
var
  i: integer;
begin
  i:= 0;
  while i < Dataset.Fields.Count do begin
    if (Dataset.Fields[i].DataType in
      [ftString, FtMemo, ftFixedChar, ftWideString,FtVariant, ftFixedWideChar, ftWideMemo]) then begin
      Dataset.Fields[i].AsString:= Trim(Dataset.Fields[i].AsString);
    end;
    Inc(i);
  end;
end;
Run Code Online (Sandbox Code Playgroud)


Lar*_*tig 5

创建自己的TADODataSet后代组件(TJuanADODataSet)并将您想要的行为合并到BeforePost事件中.重构使所有现有的TADODataSets成为TJuanADODatasets.