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

时间:2011-10-04 14:38:54

标签: database delphi ado

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

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

3 个答案:

答案 0 :(得分:6)

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

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

在objectinspector中

Table1.BeforePost:= TrimFieldsBeforePost;
Table2.BeforePost:= TrimFieldsBeforePost;
....

在您的代码中

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;

答案 1 :(得分:5)

创建您自己的TADODataSet后代组件(TJuanADODataSet),并将您想要的行为合并到BeforePost事件中。重构将所有现有TADODataSet转换为TJuanADODataset s。

答案 2 :(得分:0)

我多年没有触及Access,但文字字段上没有自动修剪功能吗?