Namespace: Consultingwerk.OERA
Class 
DataAccess Copy to Clipboard
Parent classes:
Inherits: Progress.Lang.Object
Implements: Consultingwerk.OERA.IDataAccess, Consultingwerk.OERA.IDataAccessCanFind, Consultingwerk.OERA.IDataAccessCountRecords, Consultingwerk.OERA.Query.IDSQueryStringSource
Inherited by: Consultingwerk.SmartFramework.SmartDataAccess Consultingwerk.SmartFramework.Repository.BusinessEntities.RepositoryObjectDataAccess Consultingwerk.SmartFramework.Repository.BusinessEntities.MetaBusinessEntity.MetaBusinessEntityDataAccess Consultingwerk.SmartFramework.Repository.BusinessEntities.MetaDataSource.MetaDataSourceDataAccess Consultingwerk.SmartFramework.Repository.BusinessEntities.MetaEntityTable.MetaEntityTableDataAccess Consultingwerk.SmartFramework.Repository.Class.AttributeDataAccess Consultingwerk.SmartFramework.Repository.Class.AttributeGroupDataAccess Consultingwerk.SmartFramework.Repository.Class.AttributeUsed.AttributeValueDataAccess Consultingwerk.SmartFramework.Repository.Class.AttributeValueDataAccess Consultingwerk.SmartFramework.Repository.Class.ClassTypeDataAccess Consultingwerk.SmartFramework.Repository.Class.LinkTypeDataAccess Consultingwerk.SmartFramework.Repository.Class.ObjectTypeDataAccess Consultingwerk.SmartFramework.Repository.Class.SupportedInstanceObjectTypeDataAccess Consultingwerk.SmartFramework.Repository.Class.SupportedLinkDataAccess Consultingwerk.SmartFramework.Repository.Customization.CustomizationDataAccess Consultingwerk.SmartFramework.Repository.Customization.CustomizationTypeDataAccess Consultingwerk.SmartFramework.Repository.Field.EntityFieldMappingDataAccess Consultingwerk.SmartFramework.Repository.Object.Export.ObjectMasterDataAccess Consultingwerk.SmartFramework.Repository.Object.ObjectMasterDataAccess Consultingwerk.SmartFramework.Repository.Object.WhereUsed.WhereUsedDataAccess Consultingwerk.OERA.DynamicBusinessEntity.DynamicDataAccess Consultingwerk.SmartFramework.System.TableDataAccess Consultingwerk.SmartFramework.System.Tags.TagDataAccess Consultingwerk.SmartFramework.System.TranslationDataAccess Consultingwerk.SmartFramework.System.UiTranslationDataAccess Consultingwerk.SmartFramework.System.ValueListDataAccess Consultingwerk.SmartFramework.Web.RouteDataAccess Consultingwerk.SmartFramework.Workflow.WorkflowDataAccess Consultingwerk.SmartFramework.Workflow.WorkflowInstanceDataAccess Consultingwerk.SmartUnit.OERA.MockDataAccess.GenericMockDataAccess Consultingwerk.SmartFramework.Repository.ScreenMapping.EntityTableMappingDataAccess Consultingwerk.SmartFramework.Repository.ScreenMapping.ScreenTypeDataAccess Consultingwerk.SmartFramework.Repository.ScreenMapping.UiTypeDataAccess Consultingwerk.SmartFramework.Scheduler.SchedulerJobDataAccess Consultingwerk.SmartFramework.Scheduler.SchedulerJobPlanDataAccess Consultingwerk.SmartFramework.Scheduler.SchedulerJobStatusDataAccess Consultingwerk.SmartFramework.Scheduler.SchedulerQueueDataAccess Consultingwerk.SmartFramework.System.AttachmentDataAccess Consultingwerk.SmartFramework.System.AttachmentRoleDataAccess Consultingwerk.SmartFramework.System.CommentRoleDataAccess Consultingwerk.SmartFramework.System.ConfigurationValueDataAccess Consultingwerk.SmartFramework.System.DeletionDataAccess Consultingwerk.SmartFramework.System.ImportFileStatus.ImportFileStatusDataAccess Consultingwerk.SmartFramework.System.KeyFieldAssignmentTypeDataAccess Consultingwerk.SmartFramework.System.LanguageDataAccess Consultingwerk.SmartFramework.System.LoginCompanyDataAccess Consultingwerk.SmartFramework.System.MessageDataAccess Consultingwerk.SmartFramework.System.ModifiedStateDataAccess Consultingwerk.SmartFramework.System.RelationDataAccess Consultingwerk.SmartFramework.System.SmartBusinessEntityDataAccess Consultingwerk.SmartFramework.System.SmartCache.CacheDataAccess Consultingwerk.SmartFramework.Authentication.UserDataAccess Consultingwerk.SmartFramework.Authentication.UserProfileDataAccess Consultingwerk.SmartFramework.Authorization.FieldSecurityItemDataAccess Consultingwerk.SmartFramework.Authorization.GroupDataAccess Consultingwerk.SmartFramework.Authorization.MenuGroupDataAccess Consultingwerk.SmartFramework.Authorization.ParentGroupDataAccess Consultingwerk.SmartFramework.Authorization.SecurityAssignmentDataAccess Consultingwerk.SmartFramework.Authorization.SecurityObjectDataAccess Consultingwerk.SmartFramework.Authorization.SecurityRealmDataAccess Consultingwerk.SmartFramework.Authorization.SecurityTokenDataAccess Consultingwerk.SmartFramework.Authorization.ToolbarSecurityItemDataAccess Consultingwerk.SmartFramework.Authorization.UserGroupDataAccess Consultingwerk.SmartFramework.Context.ContextStoreDataAccess Consultingwerk.SmartFramework.Lock.LockDataAccess Consultingwerk.SmartFramework.Menu.MenuDataAccess Consultingwerk.SmartFramework.Menu.MenuStyleDataAccess Consultingwerk.SmartFramework.Menu.ModuleDataAccess Consultingwerk.SmartFramework.Menu.ProductDataAccess Consultingwerk.BusinessEntityDesigner.Services.BusinessEntityDataAccess Consultingwerk.BusinessEntityDesigner.Services.DatabaseSchemaDataAccess Consultingwerk.Windows.Framework.Localization.UserInterfaceCultureDataAccess
ABSTRACT

File:DataAccess
Purpose:Abstract base class for OERA Data Access objects
Author(s):Mike Fechner / Consultingwerk Ltd.
Created:Wed Feb 24 22:19:03 CET 2010
Notes:SCL-1480: Now supports the SaveRowChanges custom log entry
type to log details about "current row modified by another
user" issues



Top Method Summary
Options Name Purpose
+ ActivateDefaultRelations () Enables the given ProDataset relations. Disables all other parent-relations of the relation's child buffer */
+ ActivateRelations (character) Enables the given ProDataset relations. Disables all other parent-relations of the relation's child buffer
# AssignKeyFieldValues (handle) Invoked by DataAccess:CommitChanges within the database transaction to optionally assign key field values for new records
# LOGICAL AttachDataSource (handle, handle, character) Attaches a data-source object to a temp-table buffer in a ProDataSet object
# LOGICAL AttachDataSource (handle, handle, character, character) Attaches a data-source object to a temp-table buffer in a ProDataSet object
# LOGICAL AttachDataSource (handle, handle, character, character, character) Attaches a data-source object to a temp-table buffer in a ProDataSet object
# LOGICAL AttachDataSource (handle, IBufferDataSource) Attaches a data-source object generated by an BufferDataSource instance to a temp-table buffer in a ProDataSet object
# LOGICAL AttachDataSource (handle, IBufferDataSource, character) Attaches a data-source object generated by an BufferDataSource instance to a temp-table buffer in a ProDataSet object
# LOGICAL AttachDataSource (handle, IBufferDataSource, character, character) Attaches a data-source object generated by an BufferDataSource instance to a temp-table buffer in a ProDataSet object
# LOGICAL AttachDataSource (handle, IBufferDataSource, character, character, character) Attaches a data-source object generated by an BufferDataSource instance to a temp-table buffer in a ProDataSet object
# A AttachDataSources () Attaches the DATA-SOURCE objects to the ProDataset Buffers
# CHARACTER BuildDataSourceQueryString (handle, IFetchDataRequest, character) Returns the Query String to be used for the DATA-SOURCE of a ProDataset member buffer
# CHARACTER BuildDataSourceQueryString (handle, IFetchDataRequest, IQueryExpressionWithSort) Returns the Query String to be used for the DATA-SOURCE of a ProDataset member buffer
+ CanFind (CanFindParameter) Returns a TRUE value if a record is found that meets the specified FIND criteria; otherwise it returns FALSE. CAN-FIND does not make the record available to the Business Entity or it's caller.
# CheckForRecursiveRelationWithQuery () Checks if the ProDataset contains recursive relations and the top-level-buffer is using a query with the DATA-SOURCE
# CommitChanges (handle) This method is called from SaveChanges in the DA to do the actual database commit and any transaction-related validation logic for a buffer.
+ CountResultRecords (ICountRecordsRequest) Counts the number of result records in the data source query
# Consultingwerk.OERA.IBufferDataSource CreateBufferDataSource (character) Creates a BufferDataSource
# Consultingwerk.OERA.IBufferDataSource CreateBufferDataSource (character, character) Creates a BufferDataSource
# Consultingwerk.OERA.IBufferDataSource CreateBufferDataSource (character, character, character) Creates a BufferDataSource
# Consultingwerk.OERA.IBufferDataSource CreateBufferDataSource (character, character, character, character) Creates a BufferDataSource
# Consultingwerk.OERA.IBufferDataSource CreateBufferDataSource (character, character, character, character, character) Creates a BufferDataSource
# Consultingwerk.OERA.IBufferDataSource CreateBufferDataSource (character, character, character, character, character, character) Creates a BufferDataSource
# Consultingwerk.OERA.IBufferDataSource CreateBufferDataSource (character, character, character, character, character, character, character) Creates a BufferDataSource
# Consultingwerk.OERA.IBufferDataSource CreateBufferDataSource (character, character, character, character, character, character, character, character) Creates a BufferDataSource
# Consultingwerk.OERA.IBufferDataSource CreateBufferDataSource (character, character, character, character, character, character, character, character, character) Creates a BufferDataSource
# Consultingwerk.OERA.IBufferDataSource CreateBufferDataSource (character, character, character, character, character, character, character, character, character, character) Creates a BufferDataSource
# Consultingwerk.OERA.IBufferDataSource CreateBufferDataSource (IBufferSpec) Creates a BufferDataSource
# Consultingwerk.OERA.IBufferDataSource CreateBufferDataSource (IBufferSpec, IBufferSpec) Creates a BufferDataSource
# Consultingwerk.OERA.IBufferDataSource CreateBufferDataSource (IBufferSpec, IBufferSpec, IBufferSpec) Creates a BufferDataSource
# Consultingwerk.OERA.IBufferDataSource CreateBufferDataSource (IBufferSpec, IBufferSpec, IBufferSpec, IBufferSpec) Creates a BufferDataSource
# Consultingwerk.OERA.IBufferDataSource CreateBufferDataSource (IBufferSpec, IBufferSpec, IBufferSpec, IBufferSpec, IBufferSpec) Creates a BufferDataSource
# Consultingwerk.OERA.IBufferDataSource CreateBufferDataSource (IBufferSpec, IBufferSpec, IBufferSpec, IBufferSpec, IBufferSpec, IBufferSpec) Creates a BufferDataSource
# Consultingwerk.OERA.IBufferDataSource CreateBufferDataSource (IBufferSpec, IBufferSpec, IBufferSpec, IBufferSpec, IBufferSpec, IBufferSpec, IBufferSpec) Creates a BufferDataSource
# Consultingwerk.OERA.IBufferDataSource CreateBufferDataSource (IBufferSpec, IBufferSpec, IBufferSpec, IBufferSpec, IBufferSpec, IBufferSpec, IBufferSpec, IBufferSpec) Creates a BufferDataSource
# Consultingwerk.OERA.IBufferDataSource CreateBufferDataSource (IBufferSpec, IBufferSpec, IBufferSpec, IBufferSpec, IBufferSpec, IBufferSpec, IBufferSpec, IBufferSpec, IBufferSpec) Creates a BufferDataSource
# Consultingwerk.OERA.IBufferDataSource CreateBufferDataSource (IBufferSpec, IBufferSpec, IBufferSpec, IBufferSpec, IBufferSpec, IBufferSpec, IBufferSpec, IBufferSpec, IBufferSpec, IBufferSpec) Creates a BufferDataSource
# CustomizeFetchDataRequest (IFetchDataRequest) Hook method to support customization the IFetchDataRequest or ICountRecordsRequest
# LOGICAL DatasetBufferFill (handle, IFetchDataRequest) Invokes the FILL method of a ProDataset member buffer
# LOGICAL DatasetFill (handle, IFetchDataRequest) Invokes the ProDataset FILL method
# A DefineReadEvents () TO-DO: Subscribe to ProDataset Event Handlers using SET-CALLBACK as needed
# A DetachDataSources () Detaches the DATA-SOURCE objects to the ProDataset Buffers
# EnableDataAccessQueryLogging () Enables DataAccessLogging
# CHARACTER ExpandTables (character) Expands the FetchDataRequest:Tables parameter, in case it contains the * wild-card character
+ FetchData (IFetchDataRequest) Fetch data from the data source
+ FetchDataByKeyTable (IFetchDataByKeyTableParameter) Allows retrieve multiple DB records from a Business Entity based on a temp-table with key values
+ FetchDataByStaticQuery (IFetchDataByStaticQueryRequest) Fetches data for single table, using a static query
# FetchDataEmptyDataset (IFetchDataRequest) Empties the Dataset before the request
# FetchDataFill (IFetchDataRequest, character, handle) Invokes FILL on the Dataset or the given Dataset Buffer
# FetchDataFillFindRowWhereBatch (IFetchDataRequest, handle, integer, character[]) Verify that a FindRowWhere on the server does always return a full batch of records
# FetchDataFillRepositionTables (IFetchDataRequest, character) FILL's buffers with REPOSITION parent-relations
# FetchDataHandleErrorStatus () Handles ERROR-STATUS after the FetchData's FILL
- FetchDataInternal (IFetchDataRequest, logical) Fetch data from the data source
# FetchDataLogNextRowid (handle) Logs the NEXT-ROWID and LAST-BATCH property of the fill-buffer
# FetchDataLogRestartRowid (handle) Logs the RESTART-ROWID of the fill-buffer
# FetchDataPrepareChildTableQuery (IFetchDataRequest, handle, integer, character) Prepares the query for a child table
# FetchDataPrepareParentTableQuery (IFetchDataRequest, handle, integer, integer, character, IQueryRowIdentifier, character, FindRecordResult, handle) Prepares the query for a parent table
# FetchDataRestoreBatchSizes (integer[]) Restores the Batch-Size of the ProDataset buffers
# FetchDataSetBatchContext (handle, character) Updates the batch context with the next-rowids
# FetchDataSetFillMode (IFetchDataRequest, handle) Sets the FILL-MODE for a Temp-Table Buffer in preparation for a FILL() method call
# FetchDataUpdateRequestContext (IFetchDataRequest, integer, character, IQueryRowIdentifier, character, FindRecordResult) Updates the NextContext, PrevContext and BatchContext properties of the IFetchDataInstance
# ROWID FindRecord (character, handle, character, integer, integer) Finds a record in the data source query and returns the ROWID ARRAY (used as RESTART-ROWID in FetchData)
# Consultingwerk.OERA.FindRecordResult FindRecord2 (character, handle, character, integer, integer) Finds a record in the data source query and returns the ROWID ARRAY (used as RESTART-ROWID in FetchData)
+ Consultingwerk.OERA.FindRecordResult FindRecord2 (character, handle, character, integer, integer, logical) Finds a record in the data source query and returns the ROWID ARRAY (used as RESTART-ROWID in FetchData)
+ Consultingwerk.OERA.FindRecordResult FindRecord2 (character, handle, IQueryExpressionWithSort, integer, integer, logical) Finds a record in the data source query and returns the ROWID ARRAY (used as RESTART-ROWID in FetchData)
# FindSourceBuffer (handle, logical) Locates the matching record in the first source buffer of the given Dataset Buffer
# CHARACTER GetDefinedBufferName (character) Finds a matching buffer name in the current dataset, and returns the defined buffer name
# CHARACTER GetDefinedBufferName (integer) Finds a matching buffer name in the current dataset, and returns the defined buffer name
# HandleRecordLockedError (handle, SysError) Handles a record locked error invoked during the SAVE-ROW-CHANGES method
# InitializeDataAccessQueryLogging () Initializes DataAccessLogging
# HANDLE InsertToDataSourceQuery (handle, IFetchDataRequest, character) Creates a new Query to be used as a DATA-SOURCE for a ProDataset member buffer
# HANDLE InsertToDataSourceQuery (handle, IFetchDataRequest, IQueryExpressionWithSort) Creates a new Query to be used as a DATA-SOURCE for a ProDataset member buffer
# InvokeCommitChangesCallback (CommitCallbackTypeEnum, handle) Invokes a CommitChangesCallback
# LOGICAL IsQueryFlagPresent (character, character) Returns if the passed in field (prefixed with the temp-table) is referenced in a list of query flag fields and is contained in the FetchDataRequest's QueryExpression
# LogCurrentRowModifiedIssue (handle) Logs details about "current row has been modified by another user to the current logfile
# LogUnableToFindDbBufferIssue (handle, Error) Logs details about "Unable to find record for db buffer "name" during SAVE-ROW-CHANGES" to the current logfile
# Consultingwerk.OERA.IDSQueryString NewDSQueryString (character, character) Factory method for the DSQueryString objects
# Consultingwerk.OERA.IDSQueryString NewDSQueryString (character, character, logical) Factory method for the DSQueryString objects
# Consultingwerk.OERA.IDSQueryString NewDSQueryString (IQueryExpressionWithSort, character, logical) Factory method for the DSQueryString objects
# Consultingwerk.OERA.IDSQueryString NewDSQueryStringForKeyValueTable (character, character, logical, IFetchDataByKeyTableParameter, character) Factory method for the DSQueryStringForKeyValueTable objects
# Consultingwerk.IQueryRowIdentifier NewQueryRowIdentifier () Overridable factory method to create an instance of the IQueryRowIdentifier class
# OnAfterSaveChanges (EventArgs) Raises the AfterSaveChanges
# OnAfterSavingRowChanges (SaveRowChangesEventArgs) Raises the AfterSavingRowChanges event
# OnBeforeSaveChanges (EventArgs) Raises the BeforeSaveChanges
# OnBeforeSavingRowChanges (SaveRowChangesEventArgs) Raises the BeforeSavingRowChanges event
# OnHandleCommitError (HandleCommitErrorEventArgs) Raises the HandleCommitError
# OnHandleCommitSysError (HandleCommitErrorEventArgs) Raises the HandleCommitSysError
+ CHARACTER ParentRelationSourceQueryString (handle) Returns the query string matching the DATA-RELATION field pairs referencing the source fields on the parent table
# Consultingwerk.IQueryExpression ParseTopBufferRequestQuery (IFetchDataRequest) Parses the Query of the top-buffer from the current request
# ProcessFetchDataRequestVariables (IFetchDataRequest) Expands variables in the FetchDataRequest:Queries
+ RepositionBackwards (handle, integer) Reposition the given query backwards by the given number of records
# ROWID RepositionBackwards (handle, rowid[], integer) Evaluates the ROWID from which the ProDataset FILL operation needs to start on a backwards fill operation
# SaveBuffer (handle) Called from saveChanges to process changes for a single DataSet temp-table buffer.
+ SaveChanges () Save changes to physical storage
# SaveRowChanges (handle) Overridable method that executes SAVE-ROW-CHANGES on the before buffer
# SetDatasetBufferCallback (handle, character, character) Sets's a ProDataset Buffer Callback-Method (BEFORE-FILL, AFTER-FILL, BEFORE-ROW-FILL, ...)
# SetDatasetBufferCallback (handle, character, character, Object) Sets's a ProDataset Buffer Callback-Method (BEFORE-FILL, AFTER-FILL, BEFORE-ROW-FILL, ...)
# SetDatasetCallback (character, character) Sets's a ProDataset Callback-Method (BEFORE-FILL, AFTER-FILL)
# SetDatasetCallback (character, character, Object) Sets's a ProDataset Callback-Method (BEFORE-FILL, AFTER-FILL)
# Consultingwerk.IQueryRowIdentifier SkipRecords (integer, handle) Returns the Query Row Identifier (ROWID) to be used when navigating that DATA-SOURCE query based on the Skip argument of the FetchDataRequest
# Consultingwerk.IQueryRowIdentifier SkipRecords (integer, handle, logical) Returns the Query Row Identifier (ROWID) to be used when navigating that DATA-SOURCE query based on the Skip argument of the FetchDataRequest
+ A CHARACTER SourceColumn (character, character) Returns the database field name matching a temp-table field name contained in a consumers query string (query string vs. temp-table definition)
+ CHARACTER SourceColumn2 (character, character) Wrapper to the SourceColumn method - ensures that Data-Sources are attached
+ A CHARACTER SourceDefaultQuery (character) Returns the base query string used to retrieve data for the temp tables. This query string will be appended by the query provided by the consumer (FetchDataRequest object).
# SuggestDataSourceIndex (handle, character) Method allows enforcing specific indexes when populating child record of a data-relation. When the parent buffer and the child buffer are FILL'ed during the ProDataset:FILL() operation, we ensure the given index
# VerifyRequestTables (character, IFetchDataRequest) Verifies tables from the current FetchDataRequest

Top Constructor Summary
Options Name Purpose
DataAccess () Static Constructor of the DataAccess class
+ DataAccess (handle) Constructor of the DataAccess objects

Top Event Summary
Options Name Purpose
+ AfterSaveChanges (Object, EventArgs) Raised at the end of SaveChanges - within the database transaction block
+ AfterSavingRowChanges (Object, SaveRowChangesEventArgs) Event raised after the execution of the SAVE-ROW-CHANGES method for an individual record in the DataAccessObject
+ BeforeSaveChanges (Object, EventArgs) Raised at the beginning of SaveChanges - within the database transaction block
+ BeforeSavingRowChanges (Object, SaveRowChangesEventArgs) Event raised before the execution of the SAVE-ROW-CHANGES method for an individual record in the DataAccessObject
+ HandleCommitError (Object, HandleCommitErrorEventArgs) Raised to allow custom handling of AppError's (Application errors, e.g. from DB triggers) raised while performing the SaveRowChanges method
+ HandleCommitSysError (Object, HandleCommitErrorEventArgs) Raised to allow custom handling of SysError's (Progress runtime errors) raised while performing the SaveRowChanges method

Top Property Summary
Options Name Purpose
# Consultingwerk.Framework.Collections.CharacterDictionary AssignSkipDictionary
+ CHARACTER AssignSkipList
# LOGICAL CheckDataTypeConversionForChildRelations
+ CHARACTER CUSTOM_LOG_ENTRY
+ HANDLE DatasetHandle
# LOGICAL DataSourcesAttached
# CHARACTER DefinedBufferNames
# CHARACTER FetchDataArgument
# Progress.Lang.Object FetchDataArguments
# Consultingwerk.OERA.IFetchDataRequest FetchDataRequest
+ LOGICAL FilterUsingInnerJoin
+ LOGICAL ForceApplyQueryOnChildTables
# LOGICAL IgnoreMissingDataSourceOnSaveChanges
# LOGICAL InFetchDataByKeyTable
+ LOGICAL LogFetchDataDetails
# LOGICAL PrepareJoinedChildTableQueries
# Consultingwerk.OERA.QueryPurposeEnum QueryPurpose
+ Consultingwerk.OERA.Enum.RequestTypeEnum RequestType
# CHARACTER SourceBufferNames
# CHARACTER SourceTableNames
# LOGICAL ThrowErrorsOnFillFailed
# LOGICAL UseForwardOnlyQueries
# LOGICAL ValidateRestartRowid


Method Detail
Top

PUBLIC ActivateDefaultRelations ()

Purpose: Enables the given ProDataset relations. Disables all other
parent-relations of the relation's child buffer

Top

PUBLIC ActivateRelations (character)

Purpose: Enables the given ProDataset relations. Disables all other
parent-relations of the relation's child buffer
Notes: Supports a comma-delimited list of relations

Parameters:
pcRelationNames CHARACTER
The name of the relation to enable
Top

PROTECTED AssignKeyFieldValues (handle)

Purpose: Invoked by DataAccess:CommitChanges within the database transaction
to optionally assign key field values for new records
Notes: Provides a hook to assign key fields for new records before the
changes (create) are written to the database. The default implementation
of this method does nothing. Override this method to implement specific
code

Parameters:
phBeforeBuffer HANDLE
The handle of the before buffer
Top

PROTECTED LOGICAL AttachDataSource (handle, handle, character)

Purpose: Attaches a data-source object to a temp-table buffer in a ProDataSet
object
Notes: Filters out any white space character from the field lists to allow
for human readable source code in the DataAccess classes
AttachDataSources method

Parameters:
phDatasetBuffer HANDLE
The handle of the ProDataset Buffer
phDataSource HANDLE
The handle of the DATA-SOURCE object
pcPairsList CHARACTER
pairs-list An optional character expression that evaluates to a comma-delimited list of field name pairs that specify a mapping between different field names in the data-source object buffer and the ProDataSet temp-table buffer
Returns LOGICAL
Logical return value of the ATTACH-DATA-SOURCE method
Top

PROTECTED LOGICAL AttachDataSource (handle, handle, character, character)

Purpose: Attaches a data-source object to a temp-table buffer in a ProDataSet
object
Notes: Filters out any white space character from the field lists to allow
for human readable source code in the DataAccess classes
AttachDataSources method

Parameters:
phDatasetBuffer HANDLE
The handle of the ProDataset Buffer
phDataSource HANDLE
The handle of the DATA-SOURCE object
pcPairsList CHARACTER
pairs-list An optional character expression that evaluates to a comma-delimited list of field name pairs that specify a mapping between different field names in the data-source object buffer and the ProDataSet temp-table buffer
pcExceptList CHARACTER
An optional character expression that evaluates to a comma-separated list of fields in the ProDataSet object buffer that will not be populated with data from the data source (that is, fields to exclude). Use this option when it is easier to specify fields to exclude rather than include. You can specify except-fields or include-fields, but not both
Returns LOGICAL
Logical return value of the ATTACH-DATA-SOURCE method
Top

PROTECTED LOGICAL AttachDataSource (handle, handle, character, character, character)

Purpose: Attaches a data-source object to a temp-table buffer in a ProDataSet
object
Notes: Filters out any white space character from the field lists to allow
for human readable source code in the DataAccess classes
AttachDataSources method

Parameters:
phDatasetBuffer HANDLE
The handle of the ProDataset Buffer
phDataSource HANDLE
The handle of the DATA-SOURCE object
pcPairsList CHARACTER
pairs-list An optional character expression that evaluates to a comma-delimited list of field name pairs that specify a mapping between different field names in the data-source object buffer and the ProDataSet temp-table buffer
pcExceptList CHARACTER
An optional character expression that evaluates to a comma-separated list of fields in the ProDataSet object buffer that will not be populated with data from the data source (that is, fields to exclude). Use this option when it is easier to specify fields to exclude rather than include. You can specify except-fields or include-fields, but not both
pcIncludeFields CHARACTER
An optional character expression that evaluates to a comma-separated list of fields to include in the ProDataSet object buffer, as an alternative to specifying fields to exclude in except-fields. Use this option when it is easier to specify fields to include rather than exclude. You can specify include-fields or except-fields, but not both. If you specify include-fields, you must set except-fields to the Unknown value (?)
Returns LOGICAL
Logical return value of the ATTACH-DATA-SOURCE method
Top

PROTECTED LOGICAL AttachDataSource (handle, IBufferDataSource)

Purpose: Attaches a data-source object generated by an BufferDataSource
instance to a temp-table buffer in a ProDataSet object
Notes: Filters out any white space character from the field lists to allow
for human readable source code in the DataAccess classes
AttachDataSources method

Parameters:
phDatasetBuffer HANDLE
The handle of the ProDataset Buffer
poDataSource Consultingwerk.OERA.IBufferDataSource
The reference to the the BufferDataSource instance that manages a data-source object handle
Returns LOGICAL
Logical return value of the ATTACH-DATA-SOURCE method
Top

PROTECTED LOGICAL AttachDataSource (handle, IBufferDataSource, character)

Purpose: Attaches a data-source object generated by an BufferDataSource
instance to a temp-table buffer in a ProDataSet object
Notes: Filters out any white space character from the field lists to allow
for human readable source code in the DataAccess classes
AttachDataSources method

Parameters:
phDatasetBuffer HANDLE
The handle of the ProDataset Buffer
poDataSource Consultingwerk.OERA.IBufferDataSource
The reference to the the BufferDataSource instance that manages a data-source object handle
pcPairsList CHARACTER
pairs-list An optional character expression that evaluates to a comma-delimited list of field name pairs that specify a mapping between different field names in the data-source object buffer and the ProDataSet temp-table buffer
Returns LOGICAL
Logical return value of the ATTACH-DATA-SOURCE method
Top

PROTECTED LOGICAL AttachDataSource (handle, IBufferDataSource, character, character)

Purpose: Attaches a data-source object generated by an BufferDataSource
instance to a temp-table buffer in a ProDataSet object
Notes: Filters out any white space character from the field lists to allow
for human readable source code in the DataAccess classes
AttachDataSources method

Parameters:
phDatasetBuffer HANDLE
The handle of the ProDataset Buffer
poDataSource Consultingwerk.OERA.IBufferDataSource
The reference to the the BufferDataSource instance that manages a data-source object handle
pcPairsList CHARACTER
pairs-list An optional character expression that evaluates to a comma-delimited list of field name pairs that specify a mapping between different field names in the data-source object buffer and the ProDataSet temp-table buffer
pcExceptList CHARACTER
An optional character expression that evaluates to a comma-separated list of fields in the ProDataSet object buffer that will not be populated with data from the data source
Returns LOGICAL
Logical return value of the ATTACH-DATA-SOURCE method
Top

PROTECTED LOGICAL AttachDataSource (handle, IBufferDataSource, character, character, character)

Purpose: Attaches a data-source object generated by an BufferDataSource
instance to a temp-table buffer in a ProDataSet object
Notes: Filters out any white space character from the field lists to allow
for human readable source code in the DataAccess classes
AttachDataSources method

Parameters:
phDatasetBuffer HANDLE
The handle of the ProDataset Buffer
poDataSource Consultingwerk.OERA.IBufferDataSource
The reference to the the BufferDataSource instance that manages a data-source object handle
pcPairsList CHARACTER
pairs-list An optional character expression that evaluates to a comma-delimited list of field name pairs that specify a mapping between different field names in the data-source object buffer and the ProDataSet temp-table buffer
pcExceptList CHARACTER
An optional character expression that evaluates to a comma-separated list of fields in the ProDataSet object buffer that will not be populated with data from the data source
pcIncludeList CHARACTER
An optional character expression that evaluates to a comma-separated list of fields to include in the ProDataSet object buffer, as an alternative to specifying fields to exclude in except-fields.
Returns LOGICAL
Logical return value of the ATTACH-DATA-SOURCE method
Top

PROTECTED AttachDataSources ()

Purpose: Attaches the DATA-SOURCE objects to the ProDataset Buffers
Notes: ABSTRACT method in Consultingwerk.OERA.DataAccess, overridden in
actual DataAccess objects
Invoked in FetchData and SaveChanges

Top

PROTECTED CHARACTER BuildDataSourceQueryString (handle, IFetchDataRequest, character)

Purpose: Returns the Query String to be used for the DATA-SOURCE of a ProDataset
member buffer
Notes: Wrapper to the access to the DSQueryString class to simplify overriding
the query manipulation in a custom Data Access class or customer
DataAccess base class override
This method is used to provide the query string for non top-level buffers
The returned Query String is based on the Query String that was provided
(by the consumer) and the Source Default Query of the Data Access object

Parameters:
phBufferHandle HANDLE
The Handle of the ProDataset member buffer
poFetchDataRequest Consultingwerk.OERA.IFetchDataRequest
The FetchDataRequest object of the current request
pcQueryString CHARACTER
The query string provided by the consumer
Returns CHARACTER
The Query String to be used for the data source of the ProDataset member buffer
Top

PROTECTED CHARACTER BuildDataSourceQueryString (handle, IFetchDataRequest, IQueryExpressionWithSort)

Purpose: Returns the Query String to be used for the DATA-SOURCE of a ProDataset
member buffer
Notes: Wrapper to the access to the DSQueryString class to simplify overriding
the query manipulation in a custom Data Access class or customer
DataAccess base class override
This method is used to provide the query string for non top-level buffers
The returned Query String is based on the Query String that was provided
(by the consumer) and the Source Default Query of the Data Access object

Parameters:
phBufferHandle HANDLE
The Handle of the ProDataset member buffer
poFetchDataRequest Consultingwerk.OERA.IFetchDataRequest
The FetchDataRequest object of the current request
poQuery Consultingwerk.IQueryExpressionWithSort
The query expression provided by the consumer
Returns CHARACTER
The Query String to be used for the data source of the ProDataset member buffer
Top

PUBLIC CanFind (CanFindParameter)

Purpose: Returns a TRUE value if a record is found that meets the specified
FIND criteria; otherwise it returns FALSE. CAN-FIND does not make
the record available to the Business Entity or it's caller.
Notes: Result will be assigned to the Result property of the CanFindParameter
instance

Parameters:
poParameter Consultingwerk.OERA.CanFindParameter
The CanFindParameter with the parameters for this call
Top

PROTECTED CheckForRecursiveRelationWithQuery ()

Purpose: Checks if the ProDataset contains recursive relations and
the top-level-buffer is using a query with the DATA-SOURCE
Notes: SCL-3449 / SCLSUP-399

Top

PROTECTED CommitChanges (handle)

Purpose: This method is called from SaveChanges in the DA
to do the actual database commit and any transaction-related
validation logic for a buffer.
Notes: This is taken directly from the OERI.
- Note that in this sample that illustrates support for distributed
business logic the DA saves the whole dataset in SaveChanges, so
this is not currently called from the BE.
- The event names are the same as in the OERI. The word "Trans"
is somewhat misleading as the DA need to support large transactions.
One could consider using a name that indicates that this is a row
event instead.

Parameters:
phBuffer HANDLE
The handle of the after buffer to commit
Top

PUBLIC CountResultRecords (ICountRecordsRequest)

Purpose: Counts the number of result records in the data source query
Notes:

Parameters:
poFetchDataRequest Consultingwerk.OERA.ICountRecordsRequest
The ICountRecordsRequest that also implements IFetchDataRequest
Top

PROTECTED Consultingwerk.OERA.IBufferDataSource CreateBufferDataSource (character)

Purpose: Creates a BufferDataSource
Notes:

Parameters:
pcTables CHARACTER
A database table name or comma delimited list of database table names
Returns Consultingwerk.OERA.IBufferDataSource
The new BufferDataSource instance
Top

PROTECTED Consultingwerk.OERA.IBufferDataSource CreateBufferDataSource (character, character)

Purpose: Creates a BufferDataSource
Notes:

Parameters:
pcTable1 CHARACTER
The first database table name
pcTable2 CHARACTER
The second database table name
Returns Consultingwerk.OERA.IBufferDataSource
The new BufferDataSource instance
Top

PROTECTED Consultingwerk.OERA.IBufferDataSource CreateBufferDataSource (character, character, character)

Purpose: Creates a BufferDataSource
Notes:

Parameters:
pcTable1 CHARACTER
The first database table name
pcTable2 CHARACTER
The second database table name
pcTable3 CHARACTER
The third database table name
Returns Consultingwerk.OERA.IBufferDataSource
The new BufferDataSource instance
Top

PROTECTED Consultingwerk.OERA.IBufferDataSource CreateBufferDataSource (character, character, character, character)

Purpose: Creates a BufferDataSource
Notes:

Parameters:
pcTable1 CHARACTER
The first database table name
pcTable2 CHARACTER
The second database table name
pcTable3 CHARACTER
The third database table name
pcTable4 CHARACTER
The fourth database table name
Returns Consultingwerk.OERA.IBufferDataSource
The new BufferDataSource instance
Top

PROTECTED Consultingwerk.OERA.IBufferDataSource CreateBufferDataSource (character, character, character, character, character)

Purpose: Creates a BufferDataSource
Notes:

Parameters:
pcTable1 CHARACTER
The first database table name
pcTable2 CHARACTER
The second database table name
pcTable3 CHARACTER
The third database table name
pcTable4 CHARACTER
The fourth database table name
pcTable5 CHARACTER
The fifth database table name
Returns Consultingwerk.OERA.IBufferDataSource
The new BufferDataSource instance
Top

PROTECTED Consultingwerk.OERA.IBufferDataSource CreateBufferDataSource (character, character, character, character, character, character)

Purpose: Creates a BufferDataSource
Notes:

Parameters:
pcTable1 CHARACTER
The first database table name
pcTable2 CHARACTER
The second database table name
pcTable3 CHARACTER
The third database table name
pcTable4 CHARACTER
The fourth database table name
pcTable5 CHARACTER
The fifth database table name
pcTable6 CHARACTER
The sixth database table name
Returns Consultingwerk.OERA.IBufferDataSource
The new BufferDataSource instance
Top

PROTECTED Consultingwerk.OERA.IBufferDataSource CreateBufferDataSource (character, character, character, character, character, character, character)

Purpose: Creates a BufferDataSource
Notes:

Parameters:
pcTable1 CHARACTER
The first database table name
pcTable2 CHARACTER
The second database table name
pcTable3 CHARACTER
The third database table name
pcTable4 CHARACTER
The fourth database table name
pcTable5 CHARACTER
The fifth database table name
pcTable6 CHARACTER
The sixth database table name
pcTable7 CHARACTER
The seventh database table name
Returns Consultingwerk.OERA.IBufferDataSource
The new BufferDataSource instance
Top

PROTECTED Consultingwerk.OERA.IBufferDataSource CreateBufferDataSource (character, character, character, character, character, character, character, character)

Purpose: Creates a BufferDataSource
Notes:

Parameters:
pcTable1 CHARACTER
The first database table name
pcTable2 CHARACTER
The second database table name
pcTable3 CHARACTER
The third database table name
pcTable4 CHARACTER
The fourth database table name
pcTable5 CHARACTER
The fifth database table name
pcTable6 CHARACTER
The sixth database table name
pcTable7 CHARACTER
The seventh database table name
pcTable8 CHARACTER
The eighth database table name
Returns Consultingwerk.OERA.IBufferDataSource
The new BufferDataSource instance
Top

PROTECTED Consultingwerk.OERA.IBufferDataSource CreateBufferDataSource (character, character, character, character, character, character, character, character, character)

Purpose: Creates a BufferDataSource
Notes:

Parameters:
pcTable1 CHARACTER
The first database table name
pcTable2 CHARACTER
The second database table name
pcTable3 CHARACTER
The third database table name
pcTable4 CHARACTER
The fourth database table name
pcTable5 CHARACTER
The fifth database table name
pcTable6 CHARACTER
The sixth database table name
pcTable7 CHARACTER
The seventh database table name
pcTable8 CHARACTER
The eighth database table name
pcTable9 CHARACTER
The ninth database table name
Returns Consultingwerk.OERA.IBufferDataSource
The new BufferDataSource instance
Top

PROTECTED Consultingwerk.OERA.IBufferDataSource CreateBufferDataSource (character, character, character, character, character, character, character, character, character, character)

Purpose: Creates a BufferDataSource
Notes:

Parameters:
pcTable1 CHARACTER
The first database table name
pcTable2 CHARACTER
The second database table name
pcTable3 CHARACTER
The third database table name
pcTable4 CHARACTER
The fourth database table name
pcTable5 CHARACTER
The fifth database table name
pcTable6 CHARACTER
The sixth database table name
pcTable7 CHARACTER
The seventh database table name
pcTable8 CHARACTER
The eighth database table name
pcTable9 CHARACTER
The ninth database table name
pcTable10 CHARACTER
The tenth database table name
Returns Consultingwerk.OERA.IBufferDataSource
The new BufferDataSource instance
Top

PROTECTED Consultingwerk.OERA.IBufferDataSource CreateBufferDataSource (IBufferSpec)

Purpose: Creates a BufferDataSource
Notes:

Parameters:
poBufferSpecs Consultingwerk.OERA.IBufferSpec
A buffer specification
Returns Consultingwerk.OERA.IBufferDataSource
The new BufferDataSource instance
Top

PROTECTED Consultingwerk.OERA.IBufferDataSource CreateBufferDataSource (IBufferSpec, IBufferSpec)

Purpose: Creates a BufferDataSource
Notes:

Parameters:
poBufferSpec1 Consultingwerk.OERA.IBufferSpec
The first buffer specification
poBufferSpec2 Consultingwerk.OERA.IBufferSpec
The second buffer specification
Returns Consultingwerk.OERA.IBufferDataSource
The new BufferDataSource instance
Top

PROTECTED Consultingwerk.OERA.IBufferDataSource CreateBufferDataSource (IBufferSpec, IBufferSpec, IBufferSpec)

Purpose: Creates a BufferDataSource
Notes:

Parameters:
poBufferSpec1 Consultingwerk.OERA.IBufferSpec
The first buffer specification
poBufferSpec2 Consultingwerk.OERA.IBufferSpec
The second buffer specification
poBufferSpec3 Consultingwerk.OERA.IBufferSpec
The third buffer specification
Returns Consultingwerk.OERA.IBufferDataSource
The new BufferDataSource instance
Top

PROTECTED Consultingwerk.OERA.IBufferDataSource CreateBufferDataSource (IBufferSpec, IBufferSpec, IBufferSpec, IBufferSpec)

Purpose: Creates a BufferDataSource
Notes:

Parameters:
poBufferSpec1 Consultingwerk.OERA.IBufferSpec
The first buffer specification
poBufferSpec2 Consultingwerk.OERA.IBufferSpec
The second buffer specification
poBufferSpec3 Consultingwerk.OERA.IBufferSpec
The third buffer specification
poBufferSpec4 Consultingwerk.OERA.IBufferSpec
The fourth buffer specification
Returns Consultingwerk.OERA.IBufferDataSource
The new BufferDataSource instance
Top

PROTECTED Consultingwerk.OERA.IBufferDataSource CreateBufferDataSource (IBufferSpec, IBufferSpec, IBufferSpec, IBufferSpec, IBufferSpec)

Purpose: Creates a BufferDataSource
Notes:

Parameters:
poBufferSpec1 Consultingwerk.OERA.IBufferSpec
The first buffer specification
poBufferSpec2 Consultingwerk.OERA.IBufferSpec
The second buffer specification
poBufferSpec3 Consultingwerk.OERA.IBufferSpec
The third buffer specification
poBufferSpec4 Consultingwerk.OERA.IBufferSpec
The fourth buffer specification
poBufferSpec5 Consultingwerk.OERA.IBufferSpec
The fifth buffer specification
Returns Consultingwerk.OERA.IBufferDataSource
The new BufferDataSource instance
Top

PROTECTED Consultingwerk.OERA.IBufferDataSource CreateBufferDataSource (IBufferSpec, IBufferSpec, IBufferSpec, IBufferSpec, IBufferSpec, IBufferSpec)

Purpose: Creates a BufferDataSource
Notes:

Parameters:
poBufferSpec1 Consultingwerk.OERA.IBufferSpec
The first buffer specification
poBufferSpec2 Consultingwerk.OERA.IBufferSpec
The second buffer specification
poBufferSpec3 Consultingwerk.OERA.IBufferSpec
The third buffer specification
poBufferSpec4 Consultingwerk.OERA.IBufferSpec
The fourth buffer specification
poBufferSpec5 Consultingwerk.OERA.IBufferSpec
The fifth buffer specification
poBufferSpec6 Consultingwerk.OERA.IBufferSpec
The sixth buffer specification
Returns Consultingwerk.OERA.IBufferDataSource
The new BufferDataSource instance
Top

PROTECTED Consultingwerk.OERA.IBufferDataSource CreateBufferDataSource (IBufferSpec, IBufferSpec, IBufferSpec, IBufferSpec, IBufferSpec, IBufferSpec, IBufferSpec)

Purpose: Creates a BufferDataSource
Notes:

Parameters:
poBufferSpec1 Consultingwerk.OERA.IBufferSpec
The first buffer specification
poBufferSpec2 Consultingwerk.OERA.IBufferSpec
The second buffer specification
poBufferSpec3 Consultingwerk.OERA.IBufferSpec
The third buffer specification
poBufferSpec4 Consultingwerk.OERA.IBufferSpec
The fourth buffer specification
poBufferSpec5 Consultingwerk.OERA.IBufferSpec
The fifth buffer specification
poBufferSpec6 Consultingwerk.OERA.IBufferSpec
The sixth buffer specification
poBufferSpec7 Consultingwerk.OERA.IBufferSpec
The seventh buffer specification
Returns Consultingwerk.OERA.IBufferDataSource
The new BufferDataSource instance
Top

PROTECTED Consultingwerk.OERA.IBufferDataSource CreateBufferDataSource (IBufferSpec, IBufferSpec, IBufferSpec, IBufferSpec, IBufferSpec, IBufferSpec, IBufferSpec, IBufferSpec)

Purpose: Creates a BufferDataSource
Notes:

Parameters:
poBufferSpec1 Consultingwerk.OERA.IBufferSpec
The first buffer specification
poBufferSpec2 Consultingwerk.OERA.IBufferSpec
The second buffer specification
poBufferSpec3 Consultingwerk.OERA.IBufferSpec
The third buffer specification
poBufferSpec4 Consultingwerk.OERA.IBufferSpec
The fourth buffer specification
poBufferSpec5 Consultingwerk.OERA.IBufferSpec
The fifth buffer specification
poBufferSpec6 Consultingwerk.OERA.IBufferSpec
The sixth buffer specification
poBufferSpec7 Consultingwerk.OERA.IBufferSpec
The seventh buffer specification
poBufferSpec8 Consultingwerk.OERA.IBufferSpec
The eighth buffer specification
Returns Consultingwerk.OERA.IBufferDataSource
The new BufferDataSource instance
Top

PROTECTED Consultingwerk.OERA.IBufferDataSource CreateBufferDataSource (IBufferSpec, IBufferSpec, IBufferSpec, IBufferSpec, IBufferSpec, IBufferSpec, IBufferSpec, IBufferSpec, IBufferSpec)

Purpose: Creates a BufferDataSource
Notes:

Parameters:
poBufferSpec1 Consultingwerk.OERA.IBufferSpec
The first buffer specification
poBufferSpec2 Consultingwerk.OERA.IBufferSpec
The second buffer specification
poBufferSpec3 Consultingwerk.OERA.IBufferSpec
The third buffer specification
poBufferSpec4 Consultingwerk.OERA.IBufferSpec
The fourth buffer specification
poBufferSpec5 Consultingwerk.OERA.IBufferSpec
The fifth buffer specification
poBufferSpec6 Consultingwerk.OERA.IBufferSpec
The sixth buffer specification
poBufferSpec7 Consultingwerk.OERA.IBufferSpec
The seventh buffer specification
poBufferSpec8 Consultingwerk.OERA.IBufferSpec
The eighth buffer specification
poBufferSpec9 Consultingwerk.OERA.IBufferSpec
The ninth buffer specification
Returns Consultingwerk.OERA.IBufferDataSource
The new BufferDataSource instance
Top

PROTECTED Consultingwerk.OERA.IBufferDataSource CreateBufferDataSource (IBufferSpec, IBufferSpec, IBufferSpec, IBufferSpec, IBufferSpec, IBufferSpec, IBufferSpec, IBufferSpec, IBufferSpec, IBufferSpec)

Purpose: Creates a BufferDataSource
Notes:

Parameters:
poBufferSpec1 Consultingwerk.OERA.IBufferSpec
The first buffer specification
poBufferSpec2 Consultingwerk.OERA.IBufferSpec
The second buffer specification
poBufferSpec3 Consultingwerk.OERA.IBufferSpec
The third buffer specification
poBufferSpec4 Consultingwerk.OERA.IBufferSpec
The fourth buffer specification
poBufferSpec5 Consultingwerk.OERA.IBufferSpec
The fifth buffer specification
poBufferSpec6 Consultingwerk.OERA.IBufferSpec
The sixth buffer specification
poBufferSpec7 Consultingwerk.OERA.IBufferSpec
The seventh buffer specification
poBufferSpec8 Consultingwerk.OERA.IBufferSpec
The eighth buffer specification
poBufferSpec9 Consultingwerk.OERA.IBufferSpec
The ninth buffer specification
poBufferSpec10 Consultingwerk.OERA.IBufferSpec
The tenth buffer specification
Returns Consultingwerk.OERA.IBufferDataSource
The new BufferDataSource instance
Top

PROTECTED CustomizeFetchDataRequest (IFetchDataRequest)

Purpose: Hook method to support customization the IFetchDataRequest or ICountRecordsRequest
Notes: Centralized location to customize queries for FetchData and CountResultRecords

Parameters:
poFetchDataRequest Consultingwerk.OERA.IFetchDataRequest
The IFetchDataRequest instance to customize
Top

PROTECTED LOGICAL DatasetBufferFill (handle, IFetchDataRequest)

Purpose: Invokes the FILL method of a ProDataset member buffer
Notes: Allows overriding this method in custom variants of the Data Access
Errors thrown from or raised in the FILL call-back methods of the
DataAccess class (SET-CALLBACK) will stop the Dataset from getting
filled / filled further. However errors thrown from the call-back
methods are not thrown from the FILL() method further up into a
catch block or to the client.
See http://knowledgebase.progress.com/articles/Article/P188375

Parameters:
phBuffer HANDLE
The handle of the proDataset
poFetchDataRequest Consultingwerk.OERA.IFetchDataRequest
The FetchDataRequest instance with the parameters for the current read
Returns LOGICAL
If the FILL is successful, this method returns TRUE. Otherwise, it returns FALSE.
Top

PROTECTED LOGICAL DatasetFill (handle, IFetchDataRequest)

Purpose: Invokes the ProDataset FILL method
Notes: Allows overriding this method in custom variants of the Data Access
Errors thrown from or raised in the FILL call-back methods of the
DataAccess class (SET-CALLBACK) will stop the Dataset from getting
filled / filled further. However errors thrown from the call-back
methods are not thrown from the FILL() method further up into a
catch block or to the client.
See http://knowledgebase.progress.com/articles/Article/P188375

Parameters:
phDataset HANDLE
The handle of the ProDataset
poFetchDataRequest Consultingwerk.OERA.IFetchDataRequest
The FetchDataRequest instance with the parameters for the current read
Returns LOGICAL
If the FILL is successful, this method returns TRUE. Otherwise, it returns FALSE.
Top

PROTECTED DefineReadEvents ()

Purpose: TO-DO: Subscribe to ProDataset Event Handlers using SET-CALLBACK
as needed
Notes: ABSTRACT method in Consultingwerk.OERA.DataAccess, overridden in
actual DataAccess objects
Invoked in FetchData

Top

PROTECTED DetachDataSources ()

Purpose: Detaches the DATA-SOURCE objects to the ProDataset Buffers
Notes: ABSTRACT method in Consultingwerk.OERA.DataAccess, overridden in
actual DataAccess objects
Invoked in FetchData and SaveChanges

Top

PROTECTED EnableDataAccessQueryLogging ()

Purpose: Enables DataAccessLogging
Notes:

Top

PROTECTED CHARACTER ExpandTables (character)

Purpose: Expands the FetchDataRequest:Tables parameter, in case it contains
the * wild-card character
Notes:

Parameters:
pcTables CHARACTER
The initial Tables parameter
Returns CHARACTER
The tables parameter with the wild-cards expanded
Top

PUBLIC FetchData (IFetchDataRequest)

Purpose: Fetch data from the data source
Notes: poFetchDataRequest:Context property is used to control batching
(forward/backwards) and the FindRowWhere/PreFetchOnFind
The first entry by CHR(1) in the Context is CHR(2) delimited:
1. Entry: RESTART-ROWID(s) - CHR(5) Delimited
2. Entry: Find String
3. Entry: PrefetchOnFind Value
The poFetchDataRequest parameter may also be passed in as a
IFetchDataAccessRequest instance allowing further specific arguments
to be passed that are only relevant to the DataAccess class

Parameters:
poFetchDataRequest Consultingwerk.OERA.IFetchDataRequest
The IFetchDataRequest object with the parameters for this call
Top

PUBLIC FetchDataByKeyTable (IFetchDataByKeyTableParameter)

Purpose: Allows retrieve multiple DB records from a Business Entity based on
a temp-table with key values
Notes:

Parameters:
poParameter Consultingwerk.OERA.IFetchDataByKeyTableParameter
The IFetchDataByKeyTableParameter with the data for this call
Top

PUBLIC FetchDataByStaticQuery (IFetchDataByStaticQueryRequest)

Purpose: Fetches data for single table, using a static query
Notes: This method always throws an exception, since only the concrete DataAccess classes know
which Fetch* method uses which parameter type

Parameters:
poParameter Consultingwerk.OERA.IFetchDataByStaticQueryRequest
The query parameter object
Top

PROTECTED FetchDataEmptyDataset (IFetchDataRequest)

Purpose: Empties the Dataset before the request
Notes: Optionally support for IFetchDataAccessRequest:AppendFetchData (SCL-1048)

Parameters:
poFetchDataRequest Consultingwerk.OERA.IFetchDataRequest
The IFetchDataRequest instance
Top

PROTECTED FetchDataFill (IFetchDataRequest, character, handle)

Purpose: Invokes FILL on the Dataset or the given Dataset Buffer
Notes:

Parameters:
poFetchDataRequest Consultingwerk.OERA.IFetchDataRequest
The reference to the FetchDataRequest instance
pcTables CHARACTER
The request tables
phFillBuffer HANDLE
The (first) buffer to fill
Top

PROTECTED FetchDataFillFindRowWhereBatch (IFetchDataRequest, handle, integer, character[])

Purpose: Verify that a FindRowWhere on the server does always return
a full batch of records
Notes:

Parameters:
poFetchDataRequest Consultingwerk.OERA.IFetchDataRequest
The reference to the current IFetchDataRequest instance
phBuffer HANDLE
The handle of the fill-buffer
piBatchSize INTEGER
The batch-size
pcFillWhereStrings CHARACTER
The array of fill-where-strings
Top

PROTECTED FetchDataFillRepositionTables (IFetchDataRequest, character)

Purpose: FILL's buffers with REPOSITION parent-relations
Notes:

Parameters:
poFetchDataRequest Consultingwerk.OERA.IFetchDataRequest
The reference to the current IFetchDataRequest instance
pcTables CHARACTER
The list of tables to populate
Top

PROTECTED FetchDataHandleErrorStatus ()

Purpose: Handles ERROR-STATUS after the FetchData's FILL
Notes:

Top

PRIVATE FetchDataInternal (IFetchDataRequest, logical)

Purpose: Fetch data from the data source
Notes: Internal version of the method. The attaching and de-attaching of
the DataSources is no done in FetchData. The possible recursive call
to fetch a complete LAST batch after FindRowWhere is calling into
the method FetchDataInternal do not interfere with the attaching of
the data-source's. SCL-621: This structure allows us to always detach
the data-sources when they should still be around (left over due to
missing FINALLY-Block execution after STOP-Condition

Parameters:
poFetchDataRequest Consultingwerk.OERA.IFetchDataRequest
The IFetchDataRequest object with the parameters for this call
plUseForwardOnlyQueries LOGICAL
Indicates whether the data-source queries should have FORWARD-ONLY = TRUE
Top

PROTECTED FetchDataLogNextRowid (handle)

Purpose: Logs the NEXT-ROWID and LAST-BATCH property of the fill-buffer
Notes:

Parameters:
phFillBuffer HANDLE
The handle of the fill-buffer
Top

PROTECTED FetchDataLogRestartRowid (handle)

Purpose: Logs the RESTART-ROWID of the fill-buffer
Notes:

Parameters:
phFillBuffer HANDLE
The handle of the fill-buffer
Top

PROTECTED FetchDataPrepareChildTableQuery (IFetchDataRequest, handle, integer, character)

Purpose: Prepares the query for a child table
Notes:

Parameters:
poFetchDataRequest Consultingwerk.OERA.IFetchDataRequest
The IFetchDataRequest instance
phBuffer HANDLE
The buffer to prepare the Data Source query for
piTable INTEGER
The counter of the current table in the request
pcQueries CHARACTER
The list of query strings for all request tables
Top

PROTECTED FetchDataPrepareParentTableQuery (IFetchDataRequest, handle, integer, integer, character, IQueryRowIdentifier, character, FindRecordResult, handle)

Purpose: Prepares the query for a parent table
Notes:

Parameters:
poFetchDataRequest Consultingwerk.OERA.IFetchDataRequest
The IFetchDataRequest instance
phBuffer HANDLE
The buffer to prepare the Data Source query for
piTable INTEGER
The counter of the current table in the request
piBatchSize INTEGER
The request's Batch Size
pcQueries CHARACTER
The list of query strings for all request tables
proRestartRowids Consultingwerk.IQueryRowIdentifier
INPUT-OUTPUT The reference to the IQueryRowIdentifier instance
pcFindString CHARACTER
OUTPUT The FIND String to return to the caller
poFindRecordResult Consultingwerk.OERA.FindRecordResult
OUTPUT The FindRecordResult to return to the caller
phQuery HANDLE
The handle of the data-source query
Top

PROTECTED FetchDataRestoreBatchSizes (integer[])

Purpose: Restores the Batch-Size of the ProDataset buffers
Notes:

Parameters:
piBatchSizes INTEGER
The array with the ProDataset buffer's Batch-Sizes
Top

PROTECTED FetchDataSetBatchContext (handle, character)

Purpose: Updates the batch context with the next-rowids
Notes:

Parameters:
phBuffer HANDLE
The handle of the first request buffer
pcContext CHARACTER
The batch context to update
Top

PROTECTED FetchDataSetFillMode (IFetchDataRequest, handle)

Purpose: Sets the FILL-MODE for a Temp-Table Buffer in preparation for
a FILL() method call
Notes:

Parameters:
poFetchDataRequest Consultingwerk.OERA.IFetchDataRequest
The reference to the IFetchDataRequest instance
phBuffer HANDLE
The handle of the current buffer
Top

PROTECTED FetchDataUpdateRequestContext (IFetchDataRequest, integer, character, IQueryRowIdentifier, character, FindRecordResult)

Purpose: Updates the NextContext, PrevContext and BatchContext properties
of the IFetchDataInstance
Notes:

Parameters:
poFetchDataRequest Consultingwerk.OERA.IFetchDataRequest
The reference to the IFetchDataRequest instance
piBatchSize INTEGER
The batch size
pcContext CHARACTER
The batch-context
proRestartRowids Consultingwerk.IQueryRowIdentifier
The restart-rowids
pcFindString CHARACTER
The FIND String
poFindRecordResult Consultingwerk.OERA.FindRecordResult
The result of the FIND operation
Top

PROTECTED ROWID FindRecord (character, handle, character, integer, integer)

Purpose: Finds a record in the data source query and returns the ROWID ARRAY
(used as RESTART-ROWID in FetchData)
Notes: This method is kept for backwards compatibility as the FindRecord2
method is now the actual working method

Parameters:
pcFindString CHARACTER
WHERE eCustomer.CustNum = 10
phBufferHandle HANDLE
The temp-table buffer handle
pcQueryString CHARACTER
The current data-source query string
piPrefetch INTEGER
The number of records to prefetch
piBatchSize INTEGER
The number of records to return to the client (total incl. prefetch)
Returns ROWID
The ROWID array of the records - that starts the resulting batch
Top

PROTECTED Consultingwerk.OERA.FindRecordResult FindRecord2 (character, handle, character, integer, integer)

Purpose: Finds a record in the data source query and returns the ROWID ARRAY
(used as RESTART-ROWID in FetchData)
Notes: Defaults to THROW error on not found

Parameters:
pcFindString CHARACTER
WHERE eCustomer.CustNum = 10
phBufferHandle HANDLE
The temp-table buffer handle
pcQueryString CHARACTER
The current data-source query string
piPrefetch INTEGER
The number of records to prefetch
piBatchSize INTEGER
The number of records to return to the client (total incl. prefetch)
Returns Consultingwerk.OERA.FindRecordResult
The FindRecordResult with the array of rowids and the information if a previous batch is available
Top

PUBLIC Consultingwerk.OERA.FindRecordResult FindRecord2 (character, handle, character, integer, integer, logical)

Purpose: Finds a record in the data source query and returns the ROWID ARRAY
(used as RESTART-ROWID in FetchData)
Notes:

Parameters:
pcFindString CHARACTER
WHERE eCustomer.CustNum = 10
phBufferHandle HANDLE
The temp-table buffer handle
pcQueryString CHARACTER
The current data-source query string
piPrefetch INTEGER
The number of records to prefetch
piBatchSize INTEGER
The number of records to return to the client (total incl. prefetch)
plThrowOnNotFound LOGICAL
Logical value indicating if an error should be thrown when the record cannot be found
Returns Consultingwerk.OERA.FindRecordResult
The FindRecordResult with the array of rowids and the information if a previous batch is available, returns ? when no record was found and plThrowOnNotFound = FALSE
Top

PUBLIC Consultingwerk.OERA.FindRecordResult FindRecord2 (character, handle, IQueryExpressionWithSort, integer, integer, logical)

Purpose: Finds a record in the data source query and returns the ROWID ARRAY
(used as RESTART-ROWID in FetchData)
Notes:

Parameters:
pcFindString CHARACTER
WHERE eCustomer.CustNum = 10
phBufferHandle HANDLE
The temp-table buffer handle
poQuery Consultingwerk.IQueryExpressionWithSort
The current data-source query expression
piPrefetch INTEGER
The number of records to prefetch
piBatchSize INTEGER
The number of records to return to the client (total incl. prefetch)
plThrowOnNotFound LOGICAL
Logical value indicating if an error should be thrown when the record cannot be found
Returns Consultingwerk.OERA.FindRecordResult
The FindRecordResult with the array of rowids and the information if a previous batch is available, returns ? when no record was found and plThrowOnNotFound = FALSE
Top

PROTECTED FindSourceBuffer (handle, logical)

Purpose: Locates the matching record in the first source buffer of the given
Dataset Buffer
Notes:

Parameters:
phBuffer HANDLE
The handle of a (after or before) ProDataset buffer
plExclusiveLock LOGICAL
Logical value indicating if the record should be locked exclusively
Top

PROTECTED CHARACTER GetDefinedBufferName (character)

Purpose: Finds a matching buffer name in the current dataset, and returns the defined buffer name
Notes:

Parameters:
pcName CHARACTER
The buffer name to find
Returns CHARACTER
The defined buffer name, or the input name, if none exists or could be found
Top

PROTECTED CHARACTER GetDefinedBufferName (integer)

Purpose: Finds a matching buffer name in the current dataset, and returns the defined buffer name
Notes:

Parameters:
piIndex INTEGER
The index of the buffer in the dataset
Returns CHARACTER
The defined buffer name, or the dataset buffer name
Top

PROTECTED HandleRecordLockedError (handle, SysError)

Purpose: Handles a record locked error invoked during the SAVE-ROW-CHANGES
method
Notes: Allows customization to the Progress default error message

Parameters:
phBeforeBuffer HANDLE
The handle to before buffer
poSysError Progress.Lang.SysError
The original error raised
Top

PROTECTED InitializeDataAccessQueryLogging ()

Purpose: Initializes DataAccessLogging
Notes:

Top

PROTECTED HANDLE InsertToDataSourceQuery (handle, IFetchDataRequest, character)

Purpose: Creates a new Query to be used as a DATA-SOURCE for a ProDataset
member buffer
Notes: Wrapper to the access to the DSQueryString class to simplify overriding
the query manipulation in a custom Data Access class or customer
DataAccess base class override
This Query is prepared based on the Query String that was provided
(by the consumer) and the Source Default Query of the Data Access object

Parameters:
phBufferHandle HANDLE
The Handle of the ProDataset member buffer
poFetchDataRequest Consultingwerk.OERA.IFetchDataRequest
The FetchDataRequest object of the current request
pcQueryString CHARACTER
The query string provided by the consumer
Returns HANDLE
The handle of the Query that was created
Top

PROTECTED HANDLE InsertToDataSourceQuery (handle, IFetchDataRequest, IQueryExpressionWithSort)

Purpose: Creates a new Query to be used as a DATA-SOURCE for a ProDataset
member buffer
Notes: Wrapper to the access to the DSQueryString class to simplify overriding
the query manipulation in a custom Data Access class or customer
DataAccess base class override
This Query is prepared based on the Query String that was provided
(by the consumer) and the Source Default Query of the Data Access object

Parameters:
phBufferHandle HANDLE
The Handle of the ProDataset member buffer
poFetchDataRequest Consultingwerk.OERA.IFetchDataRequest
The FetchDataRequest object of the current request
poQuery Consultingwerk.IQueryExpressionWithSort
The query expression with sort provided by the consumer
Returns HANDLE
The handle of the Query that was created
Top

PROTECTED InvokeCommitChangesCallback (CommitCallbackTypeEnum, handle)

Purpose: Invokes a CommitChangesCallback
Notes: Provides a central location to handle error thrown from these
callback methods. By default errors thrown will be thrown to the
caller. By overriding this method customers can CATCH errors and add
them to the ProDataset buffer ERROR-STRING etc.

Parameters:
poCommitCallbackType Consultingwerk.OERA.Enum.CommitCallbackTypeEnum
The CommitCallbackTypeEnum value describing the callback to be invoked
phBeforeBuffer HANDLE
The handle of the before-buffer (to determine the ROW-STATE)
Top

PROTECTED LOGICAL IsQueryFlagPresent (character, character)

Purpose: Returns if the passed in field (prefixed with the temp-table)
is referenced in a list of query flag fields and is contained in the
FetchDataRequest's QueryExpression
Notes:

Parameters:
pcFieldName CHARACTER
The name of the field to verify
pcQueryFlagFields CHARACTER
The name of the fields to compare with
Returns LOGICAL
Logical value indicating if the passed in field is referenced in a list of query flag fields and is contained in the FetchDataRequest's QueryExpression
Top

PROTECTED LogCurrentRowModifiedIssue (handle)

Purpose: Logs details about "current row has been modified
by another user to the current logfile
Notes: Invoked by the SaveRowChanges method when error 11913 occurs
and the SaveRowChanges custom logentry type is activated

Parameters:
phBeforeBuffer HANDLE
The handle of the current before buffer (record)
Top

PROTECTED LogUnableToFindDbBufferIssue (handle, Error)

Purpose: Logs details about "Unable to find record for db buffer "name" during
SAVE-ROW-CHANGES" to the current logfile
Notes: Invoked by the SaveRowChanges method when error 11912 occurs
and the SaveRowChanges custom logentry type is activated

Parameters:
phBeforeBuffer HANDLE
The handle of the current before buffer (record)
poError Progress.Lang.Error
The Error instance
Top

PROTECTED Consultingwerk.OERA.IDSQueryString NewDSQueryString (character, character)

Purpose: Factory method for the DSQueryString objects
Notes: It's not recommended that customers override this method, SCL-866
Customers should rather override the two methods NewDSQueryString
(pcQuery, pcBuffer, plFilterUsingInnerJoin) and NewDSQueryStringForKeyValueTable
(pcQuery, pcBuffer, plFilterUsingInnerJoin, poFetchDataByKeyTableParameter,
pcFieldPairs)

Parameters:
pcQuery CHARACTER
The Query String for the DSQueryString instance
pcBuffer CHARACTER
The Buffer Name for the DSQueryString instance
Returns Consultingwerk.OERA.IDSQueryString
The new IDSQueryString instance
Top

PROTECTED Consultingwerk.OERA.IDSQueryString NewDSQueryString (character, character, logical)

Purpose: Factory method for the DSQueryString objects
Notes: Customers should override this method as a factory for custom IDSQueryString
implementations

Parameters:
pcQuery CHARACTER
The Query String for the DSQueryString instance
pcBuffer CHARACTER
The Buffer Name for the DSQueryString instance
plFilterUsingInnerJoin LOGICAL
Logical value indicating if the data source query should be using an inner join
Returns Consultingwerk.OERA.IDSQueryString
The new IDSQueryString instance
Top

PROTECTED Consultingwerk.OERA.IDSQueryString NewDSQueryString (IQueryExpressionWithSort, character, logical)

Purpose: Factory method for the DSQueryString objects
Notes: Customers should override this method as a factory for custom IDSQueryString
implementations

Parameters:
poQuery Consultingwerk.IQueryExpressionWithSort
The Query String for the DSQueryString instance
pcBuffer CHARACTER
TheIQueryExpressionWithSort instance for the DSQueryString instance
plFilterUsingInnerJoin LOGICAL
Logical value indicating if the data source query should be using an inner join
Returns Consultingwerk.OERA.IDSQueryString
The new IDSQueryString instance
Top

PROTECTED Consultingwerk.OERA.IDSQueryString NewDSQueryStringForKeyValueTable (character, character, logical, IFetchDataByKeyTableParameter, character)

Purpose: Factory method for the DSQueryStringForKeyValueTable objects
Notes: Customers should override this method as a factory for custom
DSQueryStringForKeyValueTable implementations

Parameters:
pcQuery CHARACTER
The Query String for the DSQueryString instance
pcBuffer CHARACTER
The Buffer Name for the DSQueryString instance
plFilterUsingInnerJoin LOGICAL
Logical value indicating if the data source query should be using an inner join
poFetchDataByKeyTableParameter Consultingwerk.OERA.IFetchDataByKeyTableParameter
The IFetchDataByKeyTableParameter instance with the parameter of the FetchDataByKeyTable method
pcFieldPairs CHARACTER
The originally attached field pairs
Returns Consultingwerk.OERA.IDSQueryString
The new IDSQueryString instance
Top

PROTECTED Consultingwerk.IQueryRowIdentifier NewQueryRowIdentifier ()

Purpose: Overridable factory method to create an instance of the IQueryRowIdentifier
class
Notes:

Returns Consultingwerk.IQueryRowIdentifier
The reference to the new instance of the IQueryRowIdentifier interface
Top

PROTECTED OnAfterSaveChanges (EventArgs)

Purpose: Raises the AfterSaveChanges
Notes:

Parameters:
e Consultingwerk.EventArgs
The Consultingwerk.EventArgs with the data for the event
Top

PROTECTED OnAfterSavingRowChanges (SaveRowChangesEventArgs)

Purpose: Raises the AfterSavingRowChanges event
Notes:

Parameters:
e Consultingwerk.OERA.SaveRowChangesEventArgs
The SaveRowChangesEventArgs with the data for this event
Top

PROTECTED OnBeforeSaveChanges (EventArgs)

Purpose: Raises the BeforeSaveChanges
Notes:

Parameters:
e Consultingwerk.EventArgs
The Consultingwerk.EventArgs with the data for the event
Top

PROTECTED OnBeforeSavingRowChanges (SaveRowChangesEventArgs)

Purpose: Raises the BeforeSavingRowChanges event
Notes:

Parameters:
e Consultingwerk.OERA.SaveRowChangesEventArgs
The SaveRowChangesEventArgs with the data for this event
Top

PROTECTED OnHandleCommitError (HandleCommitErrorEventArgs)

Purpose: Raises the HandleCommitError
Notes:

Parameters:
e Consultingwerk.OERA.HandleCommitErrorEventArgs
The HandleCommitErrorEventArgs with the data for the event
Top

PROTECTED OnHandleCommitSysError (HandleCommitErrorEventArgs)

Purpose: Raises the HandleCommitSysError
Notes:

Parameters:
e Consultingwerk.OERA.HandleCommitErrorEventArgs
The HandleCommitErrorEventArgs with the data for the event
Top

PUBLIC CHARACTER ParentRelationSourceQueryString (handle)

Purpose: Returns the query string matching the DATA-RELATION field pairs
referencing the source fields on the parent table
Notes:

Parameters:
phBuffer HANDLE
The child buffer of the relation
Returns CHARACTER
The source query string matching the data-relation criteria
Top

PROTECTED Consultingwerk.IQueryExpression ParseTopBufferRequestQuery (IFetchDataRequest)

Purpose: Parses the Query of the top-buffer from the current request
Notes:

Parameters:
poFetchDataRequest Consultingwerk.OERA.IFetchDataRequest
The reference to the IFetchDataRequest
Returns Consultingwerk.IQueryExpression
The IQueryExpression representing the query string or ? when there is no query
Top

PROTECTED ProcessFetchDataRequestVariables (IFetchDataRequest)

Purpose: Expands variables in the FetchDataRequest:Queries
Notes: Variables are expected within a character value and be surrounded
by ${ } (ANT style property Syntax)
${LanguageIsoCode}, ${LanguageKey}, ${UserKey}, ${UserName}, ${UserFullName},
${CurrentWeek}, ${LastWeek}, ${CurrentMonth}, ${LastMonth}, ${CurrentYear},
${LastYear}, ${Today}, ${Yesterday}, ${Tomorrow}

Parameters:
poFetchDataRequest Consultingwerk.OERA.IFetchDataRequest
The IFetchDataRequest instance to customize
Top

PUBLIC RepositionBackwards (handle, integer)

Purpose: Reposition the given query backwards by the given number of records
Notes: Overridable by child classes to implement custom behavior

Parameters:
phQuery HANDLE
The query handle to reposition backwards
piNumRecords INTEGER
The number of records
Top

PROTECTED ROWID RepositionBackwards (handle, rowid[], integer)

Purpose: Evaluates the ROWID from which the ProDataset FILL operation
needs to start on a backwards fill operation
Notes: This method may be overridden in a DataAccess object class
This method is no longer used for the backwards batching.
It is kept for backwards compatibility of customers code.

Parameters:
phQuery HANDLE
The Query Handle to reposition backwards
proRowids ROWID
The current ROWID Array
piBatchSize INTEGER
The number of records to reposition backwards
Returns ROWID
The array of starting ROWIDs for the next FILL operation
Top

PROTECTED SaveBuffer (handle)

Purpose: Called from saveChanges to process changes
for a single DataSet temp-table buffer.
Notes: This is similar to the OERI BE version, but has no pre and
post transaction hooks because:
- This method might very well be called inside a transaction.
- The BE supports hooks outside of the transaction scope.

Parameters:
phBuffer HANDLE
The handle of the after buffer
Top

PUBLIC SaveChanges ()

Purpose: Save changes to physical storage
Notes: This implementation of data access save traverses all records in order
to:
- Allow the DA to control transactions, which cannot be directly
controlled in distributed BL. Transaction control is a concern of
the BL, but should not be controlled with TRANSACTION keyword.
- Offer a course grained save interface from distributed BL
- The default operation here is just a transaction per record
- This simple sample does not use child relations to traverse
the buffers as the OERI BE example. (A property that controls
update order would give the same effect).
- Traversing of child data from a parent would make sense if done for
one parent record at a time.

Top

PROTECTED SaveRowChanges (handle)

Purpose: Overridable method that executes SAVE-ROW-CHANGES on the before buffer
Notes: Called from CommitChanges

Parameters:
phBeforeBuffer HANDLE
The handle of the before buffer
Top

PROTECTED SetDatasetBufferCallback (handle, character, character)

Purpose: Sets's a ProDataset Buffer Callback-Method (BEFORE-FILL, AFTER-FILL, BEFORE-ROW-FILL, ...)
Notes:

Parameters:
phBuffer HANDLE
The ProDataset Buffer Handle to add the callback for
pcCallback CHARACTER
The DatasetBufferEventEnum value to add the callback method for
pcMethod CHARACTER
The name of the Method to register as a callback
Top

PROTECTED SetDatasetBufferCallback (handle, character, character, Object)

Purpose: Sets's a ProDataset Buffer Callback-Method (BEFORE-FILL, AFTER-FILL, BEFORE-ROW-FILL, ...)
Notes:

Parameters:
phBuffer HANDLE
The ProDataset Buffer Handle to add the callback for
pcCallback CHARACTER
The DatasetBufferEventEnum value to add the callback method for
pcMethod CHARACTER
The name of the Method to register as a callback
poObject Progress.Lang.Object
The Object that contains the callback method
Top

PROTECTED SetDatasetCallback (character, character)

Purpose: Sets's a ProDataset Callback-Method (BEFORE-FILL, AFTER-FILL)
Notes:

Parameters:
pcCallback CHARACTER
The DatasetEventEnum value to add the callback method for
pcMethod CHARACTER
The name of the Method to register as a callback
Top

PROTECTED SetDatasetCallback (character, character, Object)

Purpose: Sets's a ProDataset Callback-Method (BEFORE-FILL, AFTER-FILL)
Notes:

Parameters:
pcCallback CHARACTER
The DatasetEventEnum value to add the callback method for
pcMethod CHARACTER
The name of the Method to register as a callback
poObject Progress.Lang.Object
The Object that contains the callback method
Top

PROTECTED Consultingwerk.IQueryRowIdentifier SkipRecords (integer, handle)

Purpose: Returns the Query Row Identifier (ROWID) to be used when navigating
that DATA-SOURCE query based on the Skip argument of the FetchDataRequest
Notes: Typically used when paging from a JSDO/Kendo UI client, SCL-819, SCL-822

Parameters:
piSkipRecords INTEGER
The number of records to skip from the beginning
phBuffer HANDLE
The temp-table buffer who's data-source should be navigated using Skip
Returns Consultingwerk.IQueryRowIdentifier
The IQueryRowIdentifier identifying the restart rowid
Top

PROTECTED Consultingwerk.IQueryRowIdentifier SkipRecords (integer, handle, logical)

Purpose: Returns the Query Row Identifier (ROWID) to be used when navigating
that DATA-SOURCE query based on the Skip argument of the FetchDataRequest
Notes: Typically used when paging from a JSDO/Kendo UI client, SCL-819, SCL-822

Parameters:
piSkipRecords INTEGER
The number of records to skip from the beginning
phBuffer HANDLE
The temp-table buffer who's data-source should be navigated using Skip
plSkipRowsSequentially LOGICAL
Logical value indicating if we should skip rows sequentially
Returns Consultingwerk.IQueryRowIdentifier
The IQueryRowIdentifier identifying the restart rowid
Top

PUBLIC CHARACTER SourceColumn (character, character)

Purpose: Returns the database field name matching a temp-table field name
contained in a consumers query string (query string vs. temp-table
definition)
Notes: Call-back used by Consultingwerk.OERA.Query.DSQueryString (part of
DataAccess:FetchData FetchData () query preparation
TO-DO: Provide code for alternative mapping

Parameters:
pcTable CHARACTER
The temp table name to return the source (database table) field name for
pcColumn CHARACTER
The temp table column name to return the source (database table) field name for
Returns CHARACTER
The database field name mapped to the passed in temp-table field
Top

PUBLIC CHARACTER SourceColumn2 (character, character)

Purpose: Wrapper to the SourceColumn method - ensures that Data-Sources are attached
Notes:

Parameters:
pcTable CHARACTER
The temp table name to return the source (database table) field name for
pcColumn CHARACTER
The temp table column name to return the source (database table) field name for
Returns CHARACTER
The database field name mapped to the passed in temp-table field
Top

PUBLIC CHARACTER SourceDefaultQuery (character)

Purpose: Returns the base query string used to retrieve data for the temp
tables. This query string will be appended by the query provided by
the consumer (FetchDataRequest object).
Notes: Call-back used by Consultingwerk.OERA.Query.DSQueryString (part of
DataAccess:FetchData FetchData () query preparation
TO-DO: Provide code to return the DATA-SOURCE root query string

Parameters:
pcTable CHARACTER
The temp table name to return the source default (database) query string for
Returns CHARACTER
The base query string used to retrieve data for the given temp-table
Top

PROTECTED SuggestDataSourceIndex (handle, character)

Purpose: Method allows enforcing specific indexes when populating child record
of a data-relation. When the parent buffer and the child buffer are
FILL'ed during the ProDataset:FILL() operation, we ensure the given index
Notes: Allows to avoid situations where in a Order -> OrderLine data-relation
when filtered by Orderline.ItemNum the itemnum index is chosen instead
of the more efficient orderline index (both indexes provide one equality
match, but itemnum is the alphabetically first index)
This method should be called from the dataset's BEFORE-FILL call back
Only processes the first buffer of the data-source query, as we assume,
that the proper join criteria between the data-source query buffers
is specified in the SourceDefaultQuery

Parameters:
phChildBuffer HANDLE
The handle of the child buffer
pcIndexName CHARACTER
The index name to use
Top

PROTECTED VerifyRequestTables (character, IFetchDataRequest)

Purpose: Verifies tables from the current FetchDataRequest
Notes:

Parameters:
pcTables CHARACTER
The list of tables form the current request
poFetchDataRequest Consultingwerk.OERA.IFetchDataRequest
The reference to the FetchDataRequest instance


Constructor Detail
Top

STATIC DataAccess ()

Purpose: Static Constructor of the DataAccess class
Notes:

Top

PUBLIC DataAccess (handle)

Purpose: Constructor of the DataAccess objects
Notes: Requires to pass a valid dataset handle

Parameters:
phDataset HANDLE
The handle of the Business Entity dataset


Event Detail
Top

PUBLIC AfterSaveChanges (Object, EventArgs)

Purpose: Raised at the end of SaveChanges - within the database transaction
block
Notes:

Parameters:
sender Progress.Lang.Object
The object that raised the AfterSaveChanges event
e Consultingwerk.EventArgs
The Consultingwerk.EventArgs with the data for the event
Top

PUBLIC AfterSavingRowChanges (Object, SaveRowChangesEventArgs)

Purpose: Event raised after the execution of the SAVE-ROW-CHANGES method
for an individual record in the DataAccessObject
Notes:

Parameters:
sender Progress.Lang.Object
The reference to the object that raised this event
e Consultingwerk.OERA.SaveRowChangesEventArgs
The SaveRowChangesEventArgs with the data for this event
Top

PUBLIC BeforeSaveChanges (Object, EventArgs)

Purpose: Raised at the beginning of SaveChanges - within the database transaction
block
Notes: This is not a cancelable event - as we have already started the database
transaction and really only errors should revert it at this point

Parameters:
sender Progress.Lang.Object
The object that raised the BeforeSaveChanges event
e Consultingwerk.EventArgs
The Consultingwerk.EventArgs with the data for the event
Top

PUBLIC BeforeSavingRowChanges (Object, SaveRowChangesEventArgs)

Purpose: Event raised before the execution of the SAVE-ROW-CHANGES method
for an individual record in the DataAccessObject
Notes:

Parameters:
sender Progress.Lang.Object
The reference to the object that raised this event
e Consultingwerk.OERA.SaveRowChangesEventArgs
The SaveRowChangesEventArgs with the data for this event
Top

PUBLIC HandleCommitError (Object, HandleCommitErrorEventArgs)

Purpose: Raised to allow custom handling of AppError's (Application errors,
e.g. from DB triggers) raised while performing the SaveRowChanges method
Notes:

Parameters:
sender Progress.Lang.Object
The object that raised the HandleCommitError event
e Consultingwerk.OERA.HandleCommitErrorEventArgs
The HandleCommitErrorEventArgs with the data for the event
Top

PUBLIC HandleCommitSysError (Object, HandleCommitErrorEventArgs)

Purpose: Raised to allow custom handling of SysError's (Progress runtime errors)
raised while performing the SaveRowChanges method
Notes:

Parameters:
sender Progress.Lang.Object
The object that raised the HandleCommitError event
e Consultingwerk.OERA.HandleCommitErrorEventArgs
The HandleCommitErrorEventArgs with the data for the event


Property Detail
Top

PROTECTED Consultingwerk.Framework.Collections.CharacterDictionary AssignSkipDictionary


Returns Consultingwerk.Framework.Collections.CharacterDictionary
Top

PUBLIC CHARACTER AssignSkipList


Returns CHARACTER
Top

PROTECTED LOGICAL CheckDataTypeConversionForChildRelations


Returns LOGICAL
Top

PUBLIC CHARACTER CUSTOM_LOG_ENTRY


Returns CHARACTER
Top

PUBLIC HANDLE DatasetHandle


Returns HANDLE
Top

PROTECTED LOGICAL DataSourcesAttached


Returns LOGICAL
Top

PROTECTED CHARACTER DefinedBufferNames


Returns CHARACTER
Top

PROTECTED CHARACTER FetchDataArgument


Returns CHARACTER
Top

PROTECTED Progress.Lang.Object FetchDataArguments


Returns Progress.Lang.Object
Top

PROTECTED Consultingwerk.OERA.IFetchDataRequest FetchDataRequest


Returns Consultingwerk.OERA.IFetchDataRequest
Top

PUBLIC LOGICAL FilterUsingInnerJoin


Returns LOGICAL
Top

PUBLIC LOGICAL ForceApplyQueryOnChildTables


Returns LOGICAL
Top

PROTECTED LOGICAL IgnoreMissingDataSourceOnSaveChanges


Returns LOGICAL
Top

PROTECTED LOGICAL InFetchDataByKeyTable


Returns LOGICAL
Top

PUBLIC LOGICAL LogFetchDataDetails


Returns LOGICAL
Top

PROTECTED LOGICAL PrepareJoinedChildTableQueries


Returns LOGICAL
Top

PROTECTED Consultingwerk.OERA.QueryPurposeEnum QueryPurpose


Returns Consultingwerk.OERA.QueryPurposeEnum
Top

PUBLIC Consultingwerk.OERA.Enum.RequestTypeEnum RequestType


Returns Consultingwerk.OERA.Enum.RequestTypeEnum
Top

PROTECTED CHARACTER SourceBufferNames


Returns CHARACTER
Top

PROTECTED CHARACTER SourceTableNames


Returns CHARACTER
Top

PROTECTED LOGICAL ThrowErrorsOnFillFailed


Returns LOGICAL
Top

PROTECTED LOGICAL UseForwardOnlyQueries


Returns LOGICAL
Top

PROTECTED LOGICAL ValidateRestartRowid


Returns LOGICAL


©2006-2023 Consultingwerk Ltd.         info@consultingwerk.de         http://www.consultingwerk.de       08.12.2024 12:59:45