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

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

最佳答案

考虑到你提出的所有限制......不

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

在对象检查器中

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;

10-05 22:25