在一个DM中放了ADOConnection1(已经连上ACCESS数据库,里面有两个表) 两个ADOQUERY, 两个DATASource,procedure TDM.FromCreate(sender;TObject);
  begin
   ADOQuery1.Close;
   ADOQuery1.SQL.Clear;
   ADOQuery1.SQL.Add('SELECT 日期 记事  FROM Gzb ');
   ADOQuery1.Open;   ADOQuery2.Close;
   ADOQuery2.SQL.Clear;
   ADOQuery2.SQL.Add('SELECT 年份 FROM year'); 
   ADOQuery2.Open; 用断点跟踪到ADOQuery2.Open;出现‘FORM子句语法错误’反复核对书写没有错误
把year表换成Gzb又正确了,怎么回事??

解决方案 »

  1.   

    先看这个,先别管第二个查询:
    ADOQuery1.SQL.Add('SELECT 日期 记事  FROM Gzb ');
    中的"日期"和"记事"是两个字段吗?如果是,中间应该加","哈.对于第二个控件的错误,看来好像是SQL语法错误,但通常会在其它地方引起,看看你的数据库的Year表中有没有"年份"这个字段?或者,看看你的ADOQuery2是否已经设置好与ADOConnection的连接.
      

  2.   

    ADOQuery1.SQL.Add('SELECT 日期 记事  FROM Gzb ');
    应为:
    ADOQuery1.SQL.Add('SELECT 日期, 记事  FROM Gzb ');
      

  3.   

    procedure TDM.FromCreate(sender;TObject);
      begin
       ADOQuery1.Close;
       ADOQuery1.SQL.Clear;
       ADOQuery1.SQL.Add('SELECT 日期,记事  FROM Gzb ');
       ADOQuery1.Open;
     
      ADOQuery2.Close;
       ADOQuery2.SQL.Clear;
       ADOQuery2.SQL.Add('SELECT 年份 FROM [year]'); 
                                          ~~~~~~~~~~~
       ADOQuery2.Open;