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表,两个字段,一个是种子,一个其它字段用这个方法就没有问题。 同样的方法,只是表字段个数不一样,怎么会有这个提示呢?
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表,两个字段,一个是种子,一个其它字段用这个方法就没有问题。 同样的方法,只是表字段个数不一样,怎么会有这个提示呢?
我用SQL实现,然后我用什么方法得到这个ID呢?