数据提交有关问题
数据提交问题
我用adotable1.append;添加数据,不用adotable1.post;好象数据就保存了。Append是否自带了post啊?还是怎么回事?
------解决方案--------------------
adotable1.append; 之后没有POST
跟着再adotable1.append;是会自动POST之后在增加的!
------解决方案--------------------
Append;调用的是
procedure TDataSet.Append;
var
Buffer: PChar;
begin
BeginInsertAppend;
....
Append之前会调用BeginInsertAppend;
procedure TDataSet.BeginInsertAppend;
begin
CheckBrowseMode;
而BeginInsertAppend又调用了CheckBrowseMode;
procedure TDataSet.CheckBrowseMode;
begin
CheckActive;
DataEvent(deCheckBrowseMode, 0);
case State of
dsEdit, dsInsert:
begin
UpdateRecord;
if Modified then Post else Cancel;
end;
dsSetKey:
Post;
end;
end;
CheckBrowseMode看的出来,如果正处在插入或修改状态会调用
if Modified then Post else Cancel;
如果你已经做了修改了就会提交,否则就取消;
做完这些之后才会去调用Append;
要说明一点,没办法让一条以上的记录处在dsEdit或dsInsert状态!
我用adotable1.append;添加数据,不用adotable1.post;好象数据就保存了。Append是否自带了post啊?还是怎么回事?
------解决方案--------------------
adotable1.append; 之后没有POST
跟着再adotable1.append;是会自动POST之后在增加的!
------解决方案--------------------
Append;调用的是
procedure TDataSet.Append;
var
Buffer: PChar;
begin
BeginInsertAppend;
....
Append之前会调用BeginInsertAppend;
procedure TDataSet.BeginInsertAppend;
begin
CheckBrowseMode;
而BeginInsertAppend又调用了CheckBrowseMode;
procedure TDataSet.CheckBrowseMode;
begin
CheckActive;
DataEvent(deCheckBrowseMode, 0);
case State of
dsEdit, dsInsert:
begin
UpdateRecord;
if Modified then Post else Cancel;
end;
dsSetKey:
Post;
end;
end;
CheckBrowseMode看的出来,如果正处在插入或修改状态会调用
if Modified then Post else Cancel;
如果你已经做了修改了就会提交,否则就取消;
做完这些之后才会去调用Append;
要说明一点,没办法让一条以上的记录处在dsEdit或dsInsert状态!