前提:
adoquery1和adoquery2 通过datasouce形成主从表,
adoquery2 数据提交方式为ltBatchOptimistic
当adoquery1 记录滚动时(beforescroll),判断adoquery2是否已提交UpdateBatch
问题:
adoquery1 设置了 filter过滤,当取消过滤显示所有行时 发现会逐条触发beforescroll事件,这样在该事件中用来判断adoquery2是否已提交的语句会依次循环整个adoquery1的记录行,影响了程序的速度.
adoquery1和adoquery2 通过datasouce形成主从表,
adoquery2 数据提交方式为ltBatchOptimistic
当adoquery1 记录滚动时(beforescroll),判断adoquery2是否已提交UpdateBatch
问题:
adoquery1 设置了 filter过滤,当取消过滤显示所有行时 发现会逐条触发beforescroll事件,这样在该事件中用来判断adoquery2是否已提交的语句会依次循环整个adoquery1的记录行,影响了程序的速度.
解决方案 »
- delphi POST网页的时候提示“invalid argument to date encode”错误!
- 高分求教!(急,急,急)
- QuickReport,自定义纸张大小就不能打印,不知各位遇到过这种问题没有?
- Trunc(2.003415072233e+15)=-1524562442,谁遇到过?
- 关于DBGrid的问题?
- 根据A,B点的经纬度,判断B是否在A点的覆盖范围之内
- 如何在使用MIDAS的基础上封装企业对象
- 关于image控件中的位图,如何取其边框进行打印?高分回报啊!!!
- 如何在Delphi中调用复杂VC函数(含有多个二级结构体)
- 请问在DBGRID中改变当前选定行的颜色? 我想在DataSourceDataChange()中实现。
- RAD Studio XE3 全球发布会(北京11月7日、上海11月9日 、深圳11月11日)
- 求一个delphi6下的SPComm,因为小弟没分了!
Flag := true;
adoquery1.Filtered := true;adoquery1.Filtered := False;
Flag := False;-----------------------------
beforescroll事件中判断
if Flag = False then
begin
//判断adoquery2是否已提交UpdateBatch
end;
adoquery1.Filtered := true;
Flag := true;//那调到这不就完事了。
adoquery1.Filtered := False;
Flag := False;
dbgrideh1 连接adoquery1 ,dbgrideh1 过滤出来内容后,选择后,adoquery2会同步关联显示相应的内容,之后如果adoquery2修改了,而dbgrideh1想重新再进行过滤时,判断2的状态,现在如果我没有修改2,而只是任意的在dbgrideh1中进行过滤,他会一直判断2的状态,procedure TForm1.Q1BeforeScroll(DataSet: TDataSet);
begin
if (CacheNotSave(q2)) AND (MessageBox(Handle, '当前数据尚未保存,放弃保存吗?', '系统提示',MB_OKCANCEL+MB_ICONQUESTION) = IDCANCEL) then
abort
end;