table关闭后,依然有针对table的操作

解决方案 »

  1.   

    你程序中应该用到了TTable,在对Table进行Edit、Insert等操作前,应将Table的Active设为True;
      

  2.   

    IF 你的Table1是否调用了Close方法 THEN
    BEGIN
      在你调用其它Table1的方法前,先执行Table1.Open ;
    END
    ELSE
    BEGIN
      IF 你一运行你的程序就遇到这个问题吗 THEN
      BEGIN
        在编译之前,先将你的Table1的ACTIVE属性设为TRUE;
      END 
      ELSE
      BEGIN 
        略
      END ;
    END ;
      

  3.   

    我又出现另一个问题:table2:DataSet not in edit or insert mode;
    程序以下:begin
      with DataMoudle2 do
      begin
        table2.Active:=true;
        table2.FieldByName('cnum').AsString:=trim(edit1.Text);
        table2.FieldByName('ctype').AsString:=trim(edit2.Text);
        table2.FieldByName('creson').AsString:=trim(edit3.Text);
        table2.FieldByName('itime').AsDateTime:=StrToDateTime(trim(edit4.Text));//Now
        table2.FieldByName('rtime').AsDateTime:=StrToDateTime(trim(edit5.Text));
        table2.FieldByName('lcc').AsFloat:=StrToFloat(trim(edit6.Text));
        table2.FieldByName('cbasic').AsString:=trim(edit7.Text);
        table2.Post;
        table2.Active:=false;
        table1.Refresh;
      end;
      
    end;
    又如何解决这些问题。多谢!
      

  4.   

    begin
      with DataMoudle2 do
      begin
        table2.Active:=true;
    //
        Table2.Edit;
    //
        table2.FieldByName('cnum').AsString:=trim(edit1.Text);
        table2.FieldByName('ctype').AsString:=trim(edit2.Text);
        table2.FieldByName('creson').AsString:=trim(edit3.Text);
        table2.FieldByName('itime').AsDateTime:=StrToDateTime(trim(edit4.Text));//Now
        table2.FieldByName('rtime').AsDateTime:=StrToDateTime(trim(edit5.Text));
        table2.FieldByName('lcc').AsFloat:=StrToFloat(trim(edit6.Text));
        table2.FieldByName('cbasic').AsString:=trim(edit7.Text);
        table2.Post;
    //
        table1.Refresh;
        table2.Active:=false;
    //
      end;
      
    end;
      

  5.   

    在begin 后加入
     1.如果你要加入数据; table1.append
     2.如果你要插入数据: table1.insert
     3.如果你要修改数据: table1.edit