用ClientDataSet调用存储过程返回的数据集可以进行Edit操作吗?解决方案

用ClientDataSet调用存储过程返回的数据集可以进行Edit操作吗?
while   not   Eof   do
            begin
                Edit;
                FieldByName( 'AK ').AsInteger   :=   RecNo;
                Next;
            end;

每次修改时总说RowNum   Can 't   be   modified.       AK是一个整型字段

------解决方案--------------------
应该可以,但估计保存不了
------解决方案--------------------
是用ADO连接的吧。
可以在存储过程控件的AfterOpen(DataSet:TDataSet)中写如下的代码就行了:
var
i:Integer;
begin
for i:=0 to DataSet.FieldCount-1 do
DataSet.Fields[i].ReadOnly := False;

end;
------解决方案--------------------
每循环一次应该保存吧,如果要保存到数据库中要用UPDATE呀