Class ArchiveSelect
To implement parsing of more complex queries, the Archive Providers need to handle a combination of a "real" query and a place to hold expansions of individual restrictions until they can be put together properly. This class is the vehicle for that. See RestrictionParsingHelper for details.
Namespace: SuperOffice.CRM.ArchiveLists
Assembly: SoDataBase.dll
Syntax
public class ArchiveSelect : Object
Constructors
ArchiveSelect()
Even simple constructor (no origin name)
Declaration
public ArchiveSelect()
ArchiveSelect(String)
Simple constructor
Declaration
public ArchiveSelect(string origin)
Parameters
Type | Name | Description |
---|---|---|
String | origin |
Fields
DoNotConvertOuterJoinsToInnerJoins
By default we convert left outer joins to inner joins when there are restrictions on them; CS uses multiple joins with OR between adjacent-table restrictions and then we need to turn this behaviour OFF. Quite possibly the whole left outer to inner conversion was a bad idea in the first case, caused by insufficient understanding of the finer points of SQL :-(. We live & learn.
Declaration
public bool DoNotConvertOuterJoinsToInnerJoins
Field Value
Type | Description |
---|---|
Boolean |
ExpansionHolder
Holding data structure for restriction expansions that are NOT directly appended to the Query; putting restrictions on hold here is the NORMAL CASE.
Declaration
public RestrictionExpansionHolder ExpansionHolder
Field Value
Type | Description |
---|---|
RestrictionExpansionHolder |
Options
Options, passed in through GetRows() and available to anyone
Declaration
public string Options
Field Value
Type | Description |
---|---|
String |
Query
The SQL query being built
Declaration
public Select Query
Field Value
Type | Description |
---|---|
Select |
Properties
ShadowContactTableInfo
The ContactTableInfo instance that we'll use for shadow selections.
Declaration
public ContactTableInfo ShadowContactTableInfo { get; set; }
Property Value
Type | Description |
---|---|
ContactTableInfo |
ShadowPersonTableInfo
The PersonTableInfo instance that we'll use for shadow selections.
Declaration
public PersonTableInfo ShadowPersonTableInfo { get; set; }
Property Value
Type | Description |
---|---|
PersonTableInfo |
Methods
AddExpansion(ArchiveRestrictionInfo, Restriction)
Add an expansion of an ArchiveRestrictionInfo to the holding structure
Declaration
public void AddExpansion(ArchiveRestrictionInfo restriction, Restriction expansion)
Parameters
Type | Name | Description |
---|---|---|
ArchiveRestrictionInfo | restriction | Restriction definition we are expanding |
Restriction | expansion | The SQL Restriction that this definition has been expanded to |