1.感知控件DataSource1的DAtaset是指向adoquery12.DBEdtnum 设好属性DataSource要连接的应知控件(DataSource1) 然后设置DataField属性其相关连的字段为dh 3.DATAGRID的DataSource设置为:DataSource1.4.新增的按钮写入代码:if not adoquery1.Active then begin adoquery1.Parameters.ParamByName('@dh').Value:='888' ; adoquery1.Open; end; adoquery1.Append; 5.在DBEdtnum输入内容后,按下保存.
1.从表的数据控件改为存缓操作模式,即将ADODataSet控件的locktype属性设为:ltBatchOptimistic.
2.今后操作完资料要这样提交:ADODataSet1.UpdateBatch;或取消提交:ADODataSet1.CancelBatch;
其中两个方法是有参数的,以UpdateBatch举例,另一个自已领误
arCurrent 目前变动的记录更新回资料库
arFiltered 只能符合过滤条件并且有变动的资料更新回资料库
arAll 把所有变动的记录更新回资料库(默认参数)
arAllChapters 更新所有被影响的Chapters
3.要得到上次新增的记录,只要用以下方法:
ADODataSet1.Filtered:=true;
ADODataSet1.FilterGroup:=fgAffectedRecords;4:其中FilterGroup值的说明以下:
fgUnassigned 还用过滤
fgNone 取消过滤条件
fgPendingRecords 有改动尚未提交的记录
fgAffectedRecords 显示上次更新回数据表的记录
fgFetchedRecords 显示目前有异动保存在内存中的记录
fgPredicate 显示被删除的资料
fgConflictingRecords 显示有改动在更新回资料表时发生错误的记录 5:建议与事务操作结合在一起,可以在发生错误时回滚数据.
1.从表的数据控件改为存缓操作模式,即将ADODataSet控件的locktype属性设为:ltBatchOptimistic.
2.今后操作完资料要这样提交:ADODataSet1.UpdateBatch;或取消提交:ADODataSet1.CancelBatch;
其中两个方法是有参数的,以UpdateBatch举例,另一个自已领误
arCurrent 目前变动的记录更新回资料库
arFiltered 只能符合过滤条件并且有变动的资料更新回资料库
arAll 把所有变动的记录更新回资料库(默认参数)
arAllChapters 更新所有被影响的Chapters
3.要得到上次新增的记录,只要用以下方法:
ADODataSet1.Filtered:=true;
ADODataSet1.FilterGroup:=fgAffectedRecords;4:其中FilterGroup值的说明以下:
fgUnassigned 还用过滤
fgNone 取消过滤条件
fgPendingRecords 有改动尚未提交的记录
fgAffectedRecords 显示上次更新回数据表的记录
fgFetchedRecords 显示目前有异动保存在内存中的记录
fgPredicate 显示被删除的资料
fgConflictingRecords 显示有改动在更新回资料表时发生错误的记录
5:建议与事务操作结合在一起,可以在发生错误时回滚数据.
然后,adoquery1.close;
adoquqery1.open;
begin
{新增}
ADOQuery1.Append;
end;procedure TForm1.Button2Click(Sender: TObject);
begin
{暂存}
adoquery1.Post;
end;procedure TForm1.Button3Click(Sender: TObject);
begin
{保存到数据库}
adoquery1.UpdateBatch();
adoquery1.close;
adoquqery1.open;
end;
输入-->暂存-->输入-->暂存,到最后只按一次保存到数据库这样就是批量保存拉
你是指每次插入后都用暂存.post。dbgrid里面只能显示最后一条呀。
1.我的ADQOQUERY控件的SQL句是:select * from x_eng 即显示表名为X_ENG的所有记录.
2.然后我新增一条记录,输入完后,我按下暂存按钮,这条新的记录就会在dbgrid的最后行,当然之前的记录也会同时显示出来.
3.当我发现有错,需要改动或删除记录时,我就修改记录,需要删除的我就删除.
4.好了,我认为全部OK了,可以真正写到数据库了,我就按一下保存到数据的按钮,这样所有新增或修改的记录就会一次地保存到数据库.
现在主要的问题就是。新增了一条记录暂存,DBGRID显示的前一条记录就没了,也就是DBGRID里面只能显示一条记录。。真搞不懂。
1.用了什么数据控件是ADOQUERY还是其它?
2.如果是ADOQUERY那么SQL是什么?
2.其它重要的属性设了些什么?
adoquery1.Close;
adoquery1.Parameters.ParamByName('@dh').Value:='888' ;
adoquery1.Open;
adoquery1.Insert;
adoquery1.FieldByName('dh').Value:=DBEdtnum.Text;
...
...
try
adoquery1.post;
except
showmessage('保存失败');
end;
设好属性DataSource要连接的应知控件(DataSource1)
然后设置DataField属性其相关连的字段为dh
3.DATAGRID的DataSource设置为:DataSource1.4.新增的按钮写入代码:if not adoquery1.Active then begin
adoquery1.Parameters.ParamByName('@dh').Value:='888' ;
adoquery1.Open;
end;
adoquery1.Append;
5.在DBEdtnum输入内容后,按下保存.