FUNCTION AfterCursorFill(lUseCursorSchema, lNoData, cSelectCmd, lResult) >IF NOT lResult > AERROR(laError) > MessageBox(laError[1,2]) >ENDIF >RETURN lResultIn my subclasses of CursorAdapter, I do this in AfterCursorFill() and call a HandleError method that sets a cErrorMessage property that can be queried from outside the class. (Of course, we set cErrorMessage = "" in the BeforeCursorFill() method in that case.)
LPARAMETERS lUseCursorSchema, lNoData, nOptions, uSource IF NOT PEMSTATUS(THIS, 'lADO_Done', 5) THIS.AddProperty('lADO_Done') ENDIF IF THIS.DataSourceType = [ADO] AND NOT THIS.lADO_Done RETURN ENDIF LOCAL llSchema, llNoData, lnOptions, luSource llSchema = lUseCursorSchema llNoData = lNoData lnOptions = nOptions luSource = uSource IF VARTYPE(THIS.nFillOptions) <> "N" THIS.nFillOptions = -1 ENDIF IF PCOUNT() < 1 OR VARTYPE(llSchema) <> "L" llSchema = THIS.UseCursorSchema ENDIF IF PCOUNT() < 2 OR VARTYPE(llNoData) <> "L" llNoData = THIS.NoData ENDIF IF PCOUNT() < 3 OR VARTYPE(lnOptions) <> "N" lnOptions = IIF(THIS.DataSourceType = [ADO], THIS.nFillOptions, 0) ENDIF LOCAL llRetVal IF THIS.DataSourceType = [ADO] llRetVal = DODEFAULT(llSchema, llNoData, lnOptions, THIS.oADO_Command) ELSE IF PCOUNT() = 4 llRetVal = DODEFAULT(llSchema, llNoData, lnOptions, luSource) ELSE llRetVal = DODEFAULT(llSchema, llNoData, lnOptions) ENDIF ENDIF NODEFAULT IF NOT m.llRetVal && There was an error trying to execute CursorFill LOCAL laError[1] AERROR(laError) =ErrorMsg(laError[1,2]) endif RETURN m.llRetval