with DataModule2 do
     begin
         ADOQuery1.Close;
         ADOQuery1.SQL.Clear;
         ADOQuery1.SQL.Add(str);
         ADOConnection1.Connected:=True;
         DataSource1.DataSet:=ADOQuery1;
         ADOQuery1.Open;
     end;
 DBGrid1.DataSource:=DataModule2.DataSource1;这样执行没问题,但我刚开始时用
with DataModule2 do
     begin
         ADOQuery1.Close;
         ADOQuery1.SQL.Clear;
         ADOQuery1.SQL.Add(str);
         ADOConnection1.Connected:=True;
         ADOQuery1.Open;
     end;
 DBGrid1.DataSource.DateSet:=DataModule2.ADOQuery1;
这样为编译时没问题,一运行就出问题