大家好,我编写了以下代码:
  var
    VYear:String;
begin
  VYear:=Trim(Edit1.Text)
  if StrToInt(VYear)>1949 then
  begin
   with ADOQuery1 do
   begin
     Close;
     SQL.Clear;
     SQL.Add('select month(销售时间)as Tmonth,Sum(销售金额)as TMoney');
     SQL.Add('from 销售数据表 where (year(销售时间)='+VYear+')');
     SQL.Add('group by 销售时间');
     open;
   end;
    form12.show;
 end;end;但运行时出现以下错误:(光标在IF语句处)
[Error] dateanalys.pas(67): Missing operator or semicolon
[Error] dateanalys.pas(79): Incompatible types: 'String' and 'procedure, untyped pointer or untyped parameter'请问是怎么回事呢,好象没缺少参数吧?我在做毕业设计,很急,大家帮帮忙哦,谢了!

解决方案 »

  1.   

     VYear:=Trim(Edit1.Text)
    少了分号
      

  2.   

    VYear:=Trim(Edit1.Text)
    少个分号,应该为
    VYear:=Trim(Edit1.Text);
      

  3.   

    [Error] dateanalys.pas(67): Missing operator or semicolon
    少个分号
    VYear:=Trim(Edit1.Text);
      

  4.   

    这个问题我也发现了,谢谢大家!
    但运行时又出现了提示:“SELECT子句中包含一个保留字,拼写错误或丢失的参数,或标点符号不正确”。麻烦大家帮我检查一下SELECT语句错在哪了,谢谢!  
      

  5.   

     SQL.Add('from 销售数据表 where (year(销售时间)='+VYear+')');
    改为
     SQL.Add('from 销售数据表 where (year(销售时间)='''+VYear+''')');看时间字段的类型了
    一般不要使用中文做表名、字段名,用[]括起它们保险一点,如:
     SQL.Add('from [销售数据表] where (year([销售时间])='''+VYear+''')');