/// <summary> /// Performs CRUD execution of queries that do not return result set. Override to do custom Query interpretation /// </summary> protected internal virtual int DoExecuteWithoutFetch(OracleConnection cnn, OracleTransaction transaction, Query[] queries) { if (queries == null) { return(0); } var affected = 0; foreach (var query in queries) { var handler = QueryResolver.Resolve(query); try { affected += handler.ExecuteWithoutFetch(new OracleCRUDQueryExecutionContext(this, cnn, transaction), query); } catch (Exception error) { throw new OracleDataAccessException( StringConsts.EXECUTE_WITHOUT_FETCH_ERROR + error.ToMessageWithType(), error, KeyViolationKind.Unspecified, CRUDGenerator.KeyViolationName(error)); } } return(affected); }
/// <summary> /// Performs CRUD load. Override to do custom Query interpretation /// </summary> protected internal virtual List <RowsetBase> DoLoad(OracleConnection cnn, OracleTransaction transaction, Query[] queries, bool oneDoc = false) { var result = new List <RowsetBase>(); if (queries == null) { return(result); } foreach (var query in queries) { var handler = QueryResolver.Resolve(query); try { var rowset = handler.Execute(new OracleCRUDQueryExecutionContext(this, cnn, transaction), query, oneDoc); result.Add(rowset); } catch (Exception error) { throw new OracleDataAccessException( StringConsts.LOAD_ERROR + error.ToMessageWithType(), error, KeyViolationKind.Unspecified, CRUDGenerator.KeyViolationName(error)); } } return(result); }
/// <summary> /// Performs CRUD load. Override to do custom Query interpretation /// </summary> protected internal async virtual Task <Cursor> DoOpenCursorAsync(OracleConnection cnn, OracleTransaction transaction, Query query) { var context = new OracleCRUDQueryExecutionContext(this, cnn, transaction); var handler = QueryResolver.Resolve(query); try { return(await handler.OpenCursorAsync(context, query).ConfigureAwait(false)); } catch (Exception error) { throw new OracleDataAccessException( StringConsts.OPEN_CURSOR_ERROR + error.ToMessageWithType(), error, KeyViolationKind.Unspecified, CRUDGenerator.KeyViolationName(error)); } }
/// <summary> /// Performs CRUD load without fetching data only returning schema. Override to do custom Query interpretation /// </summary> protected internal async virtual Task <Schema> DoGetSchemaAsync(OracleConnection cnn, OracleTransaction transaction, Query query) { if (query == null) { return(null); } var handler = QueryResolver.Resolve(query); try { return(await handler.GetSchemaAsync(new OracleCRUDQueryExecutionContext(this, cnn, transaction), query).ConfigureAwait(false)); } catch (Exception error) { throw new OracleDataAccessException( StringConsts.GET_SCHEMA_ERROR + error.ToMessageWithType(), error, KeyViolationKind.Unspecified, CRUDGenerator.KeyViolationName(error)); } }