深入CursorAdapter(四),第1张

深入CursorAdapter(四),第2张

大型计算机等级站布置的检查:

附件SFDataClasses.vcx中的这个数据和环境类比SFCursorAdapter简单多了。但是它增加了一些非常有用的功能:

×× GetData方法会调用这个数据环境类中所有SFCursorAdapter成员类的GetData方法,这样就不需要一个一个调用了。类似地,Requery和Update方法也调用每个SFCursorAdapter成员类的Requery和Update方法。

Xxx和SFCursorAdapter一样,SetConnection方法会将DataSource设置为一个ADO记录集,并将这个记录集的ActiveConnection属性设置为一个ADO Connection对象。但是,它还调用所有SFCursorAdapter成员类的SetConnection方法,这些成员类的UseDEDataSource属性设置为. f。

×××它提供一些简单的错误处理(cErrorMessage属性将用错误信息填充)

×××它有一个释演法。

现在我们来看看这个类的一对方法。GetData非常简单:如果这个数据环境类的任何成员对象有一个GetData方法,就调用那个方法:

lparameters tlNoData
本地定位符,;
llReturn
对于此。对象
if pemstatus(loCursor,' GetData ',5)
llReturn = loCursor。GetData(tlno data)
if not ll return
this . cerrormessage = loCursor . cerrormessage
exit
endif not ll return
endif PEM status(loCursor,' get data ',5)
next loCursor
return ll return

SetConnection方法稍微复杂一点:如果它的任何一个成员对象都有SetConnection方法,并且成员对象的UseDEDataSource属性设置为. f,则调用成员对象的SetConnection方法;然后,如果任何CursorAdapter对象的UseDEDataSource属性设置为. t,请使用类似于SFCusrorAdapter中的代码来设置您自己的DataSource:

lparameters tuConnection
本地llSetOurs,;
loCursor,;
llReturn
与此

*调用任何不使用我们的
* DataSource的CursorAdapter的SetConnection方法。

llSetOurs = .F.
对于。objects
do case
case upper(loCursor。base class)' cursor adapter '
case locator。UseDEDataSource
llSetOurs = . t .
case PEM status(loCursor,' SetConnection ',5)
loCursor。set connection(tu connection)
end case
下一个位置

*如果我们发现任何使用我们的数据源的CursorAdapters,我们将需要
*设置我们自己的数据源。

if llSetOurs
do case
case。DataSourceType = 'ODBC'
。data source = tu connection
case。DataSourceType = 'ADO'
。DataSource = createobject('ADODB。RecordSet ')
. data source . active connection = tu connection
end case
endif llSetOurs
end with

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 深入CursorAdapter(四)

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情