代码是这样的 while not lDataSet.Eof do
begin
lDataSet.FieldByName('ID').asInteger := 1;
lDataSet.Next;
end;
FConnection.Post(lDataSet);或者改成 while not lDataSet.Eof do
begin
lDataSet.FieldByName('ID').asInteger := 1;
FConnection.Post(lDataSet);
lDataSet.Next;
end;也是一样我的目的是要把整个数据集的ID都改掉请问大家一下,这要怎样改才不会出错
谢谢了!
begin
lDataSet.FieldByName('ID').asInteger := 1;
lDataSet.Next;
end;
FConnection.Post(lDataSet);或者改成 while not lDataSet.Eof do
begin
lDataSet.FieldByName('ID').asInteger := 1;
FConnection.Post(lDataSet);
lDataSet.Next;
end;也是一样我的目的是要把整个数据集的ID都改掉请问大家一下,这要怎样改才不会出错
谢谢了!
while not lDataSet.Eof do
begin
lDataSet.Edit;////////要改变DataSet状态的
lDataSet.FieldByName('ID').asInteger := 1;
FConnection.Post(lDataSet);
lDataSet.Next;
end;
while not lDataSet.Eof do
begin
lDataSet.FieldByName('ID').asInteger := 1;
FConnection.Post(lDataSet);
lDataSet.Next;
end;这个已经是加上去的了
while not lDataSet.Eof do
begin
lDataSet.FieldByName('ID').asInteger := 1;
FConnection.Post(lDataSet);
lDataSet.Next;
end;这个已经是加上去的了----------------你注意了吗?当你执行第一次循环时,是对的,但当第二次循环开始时,iDataSet的状态已不是Edit状态!所以,要按我在一楼的代码,把.Edit放在循环内!
begin
lDataSet.Edit; //iDataSet状态---->dsEdit
lDataSet.FieldByName('ID').asInteger := 1;
FConnection.Post(lDataSet);//状态 : dsBrowser
lDataSet.Next;//不管有没有在上面执行Post,Next都默认Post此时状态都是dsBrowser
end;
-------------------------------------------------
这就是因为DataSet.State不在Edit状态时,如果Post,要报错的。
begin
lDataSet.Edit;
lDataSet.FieldByName('ID').asInteger := 1;
FConnection.Post(lDataSet);
lDataSet.Next;
end;还是会错啊郁闷
大家看看还有别的方法吗? 就是批量修改数据的我的目的是想让一批数据的ID号替换成另一批的ID