tryDoing method
Implementation
bool tryDoing(TDataOperation p, TDataSetErrorEvent? ev) {
var retry = TDataAction.daRetry;
while (retry == TDataAction.daRetry) {
try {
updateCursorPos();
p();
return true;
} on EDatabaseError catch (e) {
retry = TDataAction.daFail;
if (ev != null) {
final ref = TDataActionRef(retry);
ev(this, e, ref);
retry = ref.value;
}
switch (retry) {
case TDataAction.daFail:
rethrow;
case TDataAction.daAbort:
throw EAbort();
case TDataAction.daRetry:
break;
}
}
}
return true;
}