我的TTable已经调用了append方法了,仍然不能修改记录,什么原因啊,运行时提示错误“Score:DataSet not in edit or insert mode”
while not data.qryScore.Eof do
with data.qryScore do
begin
data.Score.Open;
if not data.Score.Locate('bh;kcdm',VarArrayOf([FieldValues['bh'],FieldValues['kcdm']]),[loPartialKey]) then
begin
data.Score.Append; //改用insert方法或在下面加data.score.edit都提示同样的错误
data.Score.FieldValues['id']:=id;
data.Score.FieldValues['bh']:=FieldValues['bh'];
data.Score.FieldValues['bmc']:=FieldValues['bmc'];
data.Score.FieldByName('kcdm').Value:=FieldByName('kcdm').Value;
data.Score.FieldByName('kcmc').Value:=FieldByName('kcmc').Value;
data.Score.FieldByName('xh').Value:=FieldByName('xh').Value;
data.Score.FieldByName('ksh').Value:=FieldByName('ksh').Value;
data.Score.FieldByName('xm').Value:=FieldByName('xm').Value;
data.Score.FieldByName('xss').Value:=FieldByName('xss').Value;
data.Score.FieldByName('xq').Value:=FieldByName('xq').Value;
data.Score.FieldByName('ksfsdm').Value:=FieldByName('ksfsdm').Value;
data.Score.FieldByName('ksfs').Value:=FieldByName('ksfs').Value;
data.Score.FieldByName('txdz').Value:=FieldByName('txdz').Value;
data.Score.FieldByName('yzbm').Value:=FieldByName('yzbm').Value;
data.Score.FieldByName('rxrq').AsDateTime:=FieldByName('rxrq').AsDateTime ;
data.Score.Post;
Next;
end;
end;
while not data.qryScore.Eof do
with data.qryScore do
begin
data.Score.Open;
if not data.Score.Locate('bh;kcdm',VarArrayOf([FieldValues['bh'],FieldValues['kcdm']]),[loPartialKey]) then
begin
data.Score.Append; //改用insert方法或在下面加data.score.edit都提示同样的错误
data.Score.FieldValues['id']:=id;
data.Score.FieldValues['bh']:=FieldValues['bh'];
data.Score.FieldValues['bmc']:=FieldValues['bmc'];
data.Score.FieldByName('kcdm').Value:=FieldByName('kcdm').Value;
data.Score.FieldByName('kcmc').Value:=FieldByName('kcmc').Value;
data.Score.FieldByName('xh').Value:=FieldByName('xh').Value;
data.Score.FieldByName('ksh').Value:=FieldByName('ksh').Value;
data.Score.FieldByName('xm').Value:=FieldByName('xm').Value;
data.Score.FieldByName('xss').Value:=FieldByName('xss').Value;
data.Score.FieldByName('xq').Value:=FieldByName('xq').Value;
data.Score.FieldByName('ksfsdm').Value:=FieldByName('ksfsdm').Value;
data.Score.FieldByName('ksfs').Value:=FieldByName('ksfs').Value;
data.Score.FieldByName('txdz').Value:=FieldByName('txdz').Value;
data.Score.FieldByName('yzbm').Value:=FieldByName('yzbm').Value;
data.Score.FieldByName('rxrq').AsDateTime:=FieldByName('rxrq').AsDateTime ;
data.Score.Post;
Next;
end;
end;
data.Score.Edit;即可...
data.Score.Append;
data.Score.Edit;
...
不行,一样的错误
with data.qryScore do
begin
data.Score.Open;
data.Score.First;
while not data.qryScore.Eof do
............数据集没有打开之前使用while not data.qryScore.Eof do是导致错误的最大原因。
2、TTable组件连接错误
3、修改之前先加上一句
data.Score.Edit;