On Thu, 04 Mar 2010, Mindaugas Kavaliauskas wrote: Hi,
> But one problem we have... There is code: > /* 1001 and 7008 are standard ADS Open Errors that will usually be > sharing issues */ > HB_ERRCODE errOsCode = u32RetVal == 1001 || u32RetVal == 7008 ? 32 : 0; > fRetry = commonError( pArea, EG_OPEN, ( HB_ERRCODE ) u32RetVal, > errOsCode, ( const char * ) pOpenInfo->abName, EF_CANRETRY | > EF_CANDEFAULT, &pError ) == E_RETRY; > > This interacts with default error handler behavior in errorsys. Yes. And if we change it then NETERR() will stop to work. > Sharing violation is not indicated by some error subCode and general > EDBF_OPEN_DBF is returned in dbf rdd. So, osCode is the only way to > detect sharing violation and it is hardcoded to DOS error codes. Yes it is. It's exactly replicated Clipper behavior. > Perhaps we must leave this hack, or... extend default error handler > to adapt to rddads. It is also not a nice solution, because ADS is > not even in core code. > Any proposal on this issue? Here is the problem with custom user code using own error handlers. I'm afraid it's hard to change it because it may introduce very serious bugs to valid Clipper code. I also do not like it but I'm afraid we have to leave it. BTW ADS was not RTE compatible with Clipper and native RDDs and flags like RETRY or DEFAULT were not set properly so some user error handlers cannot work properly. I cleaned few of them but I think some RTE still should be fixed. best regards, Przemek _______________________________________________ Harbour mailing list (attachment size limit: 40KB) Harbour@harbour-project.org http://lists.harbour-project.org/mailman/listinfo/harbour