深入CursorAdapter(四)
大型計算機等級站佈置的檢查:
附件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
0條評論