一个非常非常奇怪的问题,谁能告诉我这是为什么???
这是我数据库数据:
下面是我绑定出来的数据:
下面是代码:
function NewDataSet(dt:TDataSet):TDataSet; {重新构造DataSet}
var mydt:TDataSet;
cdt:TClientDataSet;
i:Integer; a:Integer;
def:TFieldDef; cc:Integer;
begin
if(dt<>nil)then
begin
cdt:=TClientDataSet.Create(Application);
cdt.FieldDefs.Assign(dt.FieldDefs);
cdt.FieldDefs.Add('ck',ftBoolean);
cdt.CreateDataSet;
mydt:=cdt as TDataSet;
mydt.Open;
with mydt do
begin
dt.Open;
dt.First;
while not dt.Eof do
begin
Append;
for a := 0 to dt.FieldDefs.Count - 1 do
begin
mydt.Fields[a].ReadOnly:=False; //这个很重要,务必加上
mydt.Fields[a].AsString:=dt.Fields[a].Value;
end;
mydt.FieldByName('ck').AsString:='False';
ShowMessage(mydt.FieldByName('mid').Value); //在这个地方弹出的值属于正常,和数据库中的相符
Post;
ShowMessage(mydt.FieldByName('mid').Value); //在这个地方弹出的值就从1开始,中间就只隔了一个提交,为什么它的值会被改变,是怎么改变的,
dt.Next;
end;
end;
Result:=mydt;
end
else
Result:=nil;
end;