现在知道一个access数据库中的表room  
字段为:  fanghao  busy  free现在要修改fanghao为12的那一行,把busy的值加1,把free的值减1。
请问应该怎么写?
用table好还是用query好,怎么写?
哪位大侠可以告诉我啊,麻烦写出来好吗?谢谢!!!

解决方案 »

  1.   

    //你怎么发那么多帖子啊,其他的已经回复了,测试一下,我没测试过
    var
      newbusy,newfree :integer;with ADOQuery1 do
    begin
      sql.close;
      sql.clear;
      sql.add('select * from room where fanghao=12');
      open;
      if recordcount <> 0 then
      begin
        newbusy := Fieldbyname('busy').asinteger; 
        newfree := Fieldbyname('free').asinteger; 
      end;
    end;
    -----------------------------------------------
    with ADOQuery1 do
    begin
      sql.close;
      sql.clear;
      sql.add('update room set busy=:busy and free=:free where fanghao=12');
      parameters.parambyname('busy').value := newbusy;
      parameters.parambyname('free').value := newfree;
      execsql;
    end;
      

  2.   

    var
      mysql: string;
    begin
      mysql := 'update room set busy=busy+1,free=free-1 where fanghao=12';
      with ADOQuery1 do
      begin
        close;
        sql.clear;
        sql.text := mysql;
        try
          ExecSQL;
        except     end;
      end;
    end;
      

  3.   

    谢谢!能否不用ADOQuery1 而只用table?怎么写