运行以下程序时老是出现"在SQL语句结尾之后找到字符",请问这是什么原因啊?
procedure TForm1.BitBtn4Click(Sender: TObject);
var
year,month,day:word;
begin
decodedate(now,year,month,day);
if ADOConnection1.Connected=true then
begin
form7.ShowModal;
ADOQuery2.Close;
ADOQuery2.SQL.Clear;
ADOQuery2.SQL.Add('update 基本信息表 set 年龄='+inttostr(year)+'-出生年;');
ADOQuery2.SQL.Add('update 基本信息表 set 患病年龄='+inttostr(year)+'-初次发现患高血压的年;');
ADOQuery2.SQL.Add('update 基本信息表 set 体重指数=体重/(身高*身高);');
ADOQuery2.SQL.Add('update 基本信息表 set 体表面积=0.0057*身高+0.0121*体重+0.0882 where 性别=true;');
ADOQuery2.SQL.Add('update 基本信息表 set 体表面积=0.0073*身高+0.0127*体重-0.2106 where 性别=false;');
ADOQuery2.ExecSQL;
end;
end;
谢谢!!

解决方案 »

  1.   

    去掉后面的分号  试试多次ExecSQL
      

  2.   

    建议每个update后
    都要execsql;
    再sql.clear
      sql.add
      

  3.   

    要一个  'update 基本信息表 就行了,其他的直接写 'set xxx=fff,set dddd=bbbb'
      

  4.   

    要一个  'update 基本信息表 set 就行了,其他的直接写 'xxx=fff,dddd=bbbb'
      

  5.   

    同意楼上,ADOQuery2一次只能执行一个SQL语句,而楼主的SQL语句太多
    ADOQuery2.SQL.Add('update 基本信息表 set 年龄='+inttostr(year)+'-出生年,');
    ADOQuery2.SQL.Add('患病年龄='+inttostr(year)+'-初次发现患高血压的年,');
    ADOQuery2.SQL.Add('体重指数=体重/(身高*身高),');
    ADOQuery2.SQL.Add('体表面积=0.0057*身高+0.0121*体重+0.0882 where 性别=true;');
    ADOQuery2..open;
    ....