在使用TADODataSet组件访问Access数据库的Delphi应用程序中,有什么方法可以在将记录写入磁盘时从文本字段中删除前导和尾随空格?或者在检索数据时,但不修改我的所有查询。
我的意思是在ADO引擎中,没有使用每个表格Trim()
中的BeforePost
编码自己。
答案 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,但文字字段上没有自动修剪功能吗?