我用了如下一个with语句
with adoMain do
  Close;
  CommandText := Sql;
  Open;
  FieldByName('XH').AsString := edtXH.Text;
end;编译的时候有错误,说close,CommandText, FieldByName等都没有定义,但是这些都是adoMain的属性或者方法呀,这样写有哪里不对吗?