if not htdata.Active then
     begin//产生一个临时的ID
       htdata.Open ;
       htdata.Append ;
       htdata.FieldByName('hth').AsString :=hth;
       htdata.FieldByName('czf').AsString :=czf;
       htdata.FieldByName('dq').AsString :=dq ;
       htdata.FieldByName('jzmj').AsString :=jzmj ;
       htdata.FieldByName('qsrq').AsString :=qsrq ;
       htdata.FieldByName('zzrq').AsString :=zzrq ;
       htdata.FieldByName('yt').AsString :=yt ;
       htdata.FieldByName('bz').AsString :=bz ;
       htdata.FieldByName('xz').AsString :=xz ;
       htdata.Refresh ;                           //刷新一下
       newxh :=htdata.fieldbyname('xh').asstring; //得到id
       htdata.Close ;
     end;
当执行htdata.refresh的时候出现错误提示insufficient key column information for 
updating or refreshing.插入数据的表有一个XH是INT类型的种子,我是想插入一条记录后
马上刷新得到种子ID,而且表里面出了XH其它字段我都写在上面。这是什么问题引起的。
我用同样在方法建立了一个TEST表,两个字段,一个是种子,一个其它字段用这个方法就没有问题。  同样的方法,只是表字段个数不一样,怎么会有这个提示呢?