with aqryAreaName do
  begin
    AreaID := FieldByName('id').AsInteger;
    try
      SQL.Text := 'update TB_AREANAME set Code=:areacode, Name=:areaname,'
                  + 'Memo=:areamemo where id=:areaid';
      Parameters.ParamByName('areacode').Value := Trim(edtAreaCode.Text);
      Parameters.ParamByName('areaname').Value := Trim(edtAreaName.Text);
      Parameters.ParamByName('areamemo').Value := Trim(mmAreaMemo.Text);
      ExecSQL;
      SQL.Clear;
      SQL.Text := 'select * from TB_AREANAME order by id';
      Open;
    except
      on E:Exception do
      begin
        ShowMessage('更新数据库中小区类型信息出错,错误原因是:' + #13 + #10
                  + E.Message);
        Exit;
      end;
    end;
  end;
这是我更新一个表数据的代码,整个代码并没有什么问题,而且我用查询分析器试这个SQL语句能更新表数据,但是为什么这段代码执行后,表里的数据并没有改变?????

解决方案 »

  1.   


     with aqryAreaName do 
      begin 
        AreaID := FieldByName('id').AsInteger; 
        try 
          SQL.Text := 'update TB_AREANAME set Code=:areacode, Name=:areaname,' 
                      + 'Memo=:areamemo where id=:areaid'; 
          Parameters.ParamByName('areacode').Value := Trim(edtAreaCode.Text); 
          Parameters.ParamByName('areaname').Value := Trim(edtAreaName.Text); 
          Parameters.ParamByName('areamemo').Value := Trim(mmAreaMemo.Text); 
          Parameters.ParamByName('areaid').Value := AreaID;  //漏了这一句 
          ExecSQL; 
          SQL.Clear; 
          SQL.Text := 'select * from TB_AREANAME order by id'; 
          Open; 
        except 
          on E:Exception do 
          begin 
            ShowMessage('更新数据库中小区类型信息出错,错误原因是:' + #13 + #10 
                      + E.Message); 
            Exit; 
          end; 
        end; 
      end; 
      

  2.   

    这个参数: :areaid 没有赋值