在Delphi中用ADO进行开发,怎样才能知道ADODataSet的数据已经被修改过。
注意:ADODataSet是用“ltBatchOptimistic”缓冲模式的。请大家勇跃参加。
注意:ADODataSet是用“ltBatchOptimistic”缓冲模式的。请大家勇跃参加。
解决方案 »
- SQL 類型轉換
- 数据库问题,求教!!!!
- 如何把传入线程的参数正确取出来?
- 关于安装程序---急急!!!!!!!!!!!!!
- 为什么?总线等待。。。。
- 莫名其妙:dbedit获得焦点后内容变空!
- ActiveXForm的ocx文件拿到客户机上Regsvr32 xxx.ocx应该就可以在IE中嵌入它了吧,但是我的只有在我的*.dpr目录下注册才可以,拿到另一个
- 怎么样实现EDIT的从右到左的输出
- 在webbrowser 中选中checkbox 但不能提交表单
- 我想用空格键和鼠标左键做同一件事,我怎样在按空格键后,调用OnMouseDown事件?
- 问个小问题!~在线求结果
- Delphi能动态创建控件吗?我的这个打印任务如何完成?
http://kingron.myetang.com(*//
标题:判断ADO数据集是否还有数据没有提交
说明:等待升级
设计:3fly
整理:Zswang
日期:2002-03-03
支持:[email protected]
//*)///////Begin Source
function CacheNotSave(mDataSet: TCustomADODataSet): Boolean;
{ 返回ADO数据集是否还有数据没有提交 }
var
vFiltered: Boolean;
vFilterGroup: TFilterGroup;
vBook: string;
begin
Result := False;
if not mDataSet.Active then Exit;
if mDataSet.LockType <> ltBatchOptimistic then Exit;
vBook := mDataSet.Book;
mDataSet.DisableControls;
try
vFiltered := mDataSet.Filtered;
vFilterGroup := mDataSet.FilterGroup;
try
mDataSet.Filtered := True;
mDataSet.FilterGroup := fgPendingRecords;
Result := mDataSet.RecordCount > 0;
finally
mDataSet.Filtered := vFiltered;
mDataSet.FilterGroup := vFilterGroup;
end;
finally
mDataSet.Book := vBook;
mDataSet.EnableControls;
end;
end; { CacheNotSave }
///////End Source///////Begin Demo
procedure TForm1.Button1Click(Sender: TObject);
begin
ADOTable1.UpdateBatch;
CheckBox1.Checked := CacheNotSave(ADOTable1);
//ActionUpdateBatch.Enabled := CacheNotSave(ADOTable1);
end;procedure TForm1.ADOTable1AfterCancel(DataSet: TDataSet);
begin
CheckBox1.Checked := CacheNotSave(TCustomADODataSet(DataSet));
end;procedure TForm1.ADOTable1AfterPost(DataSet: TDataSet);
begin
CheckBox1.Checked := CacheNotSave(TCustomADODataSet(DataSet));
end;procedure TForm1.ADOTable1AfterDelete(DataSet: TDataSet);
begin
CheckBox1.Checked := CacheNotSave(TCustomADODataSet(DataSet));
end;procedure TForm1.ADOTable1AfterOpen(DataSet: TDataSet);
begin
CheckBox1.Checked := CacheNotSave(TCustomADODataSet(DataSet));
end;
///////End Demo