vfp9 CA的新方法----DelayedMemoFetch

来源:互联网 发布:java怎么创建窗口程序 编辑:程序博客网 时间:2024/06/09 16:52

vfp8的CA有一个FetchMemo属性
如果设置FetchMemo= .F.
那Memo字段的内容会不读取,但如果需要里面的内容就会变的非常麻烦

VFP9开始有了DelayedMemoFetch方法

可以做到,cursorFill()的时候,Memo里面全空
但,当光标移动到Memo字段的时候才自动读取当前条记录的Memo字段内容
注意是:当前条记录的Memo字段内容
这个方法能极大的提高读取带有Memo字段表的效率

操作办法如下:

1.FetchMemo = .F.
2.FetchMemoDataSourceType = ca.DataSourceType
3.FetchMemoDataSource = ca.DataSource
4.FetchMemoCmdList
这个是最关键的,也是最麻烦的
oCA.FetchMemoCmdList= "f1 <SELECT f1 FROM testCAMemoFetch WHERE f0=?EVALUATE(this.RefreshAlias +'.f0')>, f2 <SELECT f2 FROM testCAMemoFetch WHERE f0=?EVALUATE(this.RefreshAlias +'.f0')>"

f1,f2这里是Memo字段名简称
f0是关键字段名
this.RefreshAlias可以是this.Alias

翻译一下意思如下:select Memo字段名 From 后台表名 whete 关键字段名=?前台的Alias名.关键字段内容

注意:

DelayedMemoFetch是个内置保护方法
在程序里是不能直接调用