SqlObjectBase Class
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
main work horse for the sql enumerator. it generates the tsql for a level and comunicates with the other levels
[System.Runtime.InteropServices.ComVisible(false)]
public abstract class SqlObjectBase : Microsoft.SqlServer.Management.Sdk.Sfc.EnumObject, Microsoft.SqlServer.Management.Sdk.Sfc.ISqlFilterDecoderCallback
[<System.Runtime.InteropServices.ComVisible(false)>]
type SqlObjectBase = class
inherit EnumObject
interface ISqlFilterDecoderCallback
Public MustInherit Class SqlObjectBase
Inherits EnumObject
Implements ISqlFilterDecoderCallback
- Inheritance
- Derived
- Attributes
- Implements
Constructors
SqlObjectBase() |
Default contructor |
Properties
ConditionedSqlList |
prefix, postfix etc, that must be added when certain fields are requested |
ConnectionInfo |
conection object (Inherited from EnumObject) |
Distinct |
the result must be distinct |
Filter |
filter for this level (Inherited from EnumObject) |
FixedProperties |
list of the properties for which the value is know e.g. Name is know if the fileter is in the form [@Name='fff'] or [@Name='fff' and ( xxxxx ) ] (Inherited from EnumObject) |
Name |
name of the xpath level (Inherited from EnumObject) |
OrderByRedirect |
used to translate an order by on post process fields to other, supporting fields |
PostProcessList |
post processes for the level |
PropertyLinkList |
links for properties |
Request |
the request for this level, it is received from one level down or from user if it is the last level (Inherited from EnumObject) |
RequestParentSelect |
Storeage for a parent select ( when we need the tsql for the parent level, usually to insert it in prefix ) |
ResultTypes |
reports the ResultTypes supported by this level |
SpecialQuery |
stores a query used to test a condition , for example that a table needed to resolve this level exists, if that fails then the empty set is returned rather then exception |
SqlRequest |
the SqlRequest that this level must resolve |
StatementBuilder |
The TSQL place holder + information that will be later transformed in TSQL |
SupportsParameterization | |
Urn |
this property lives only while a request is serviced (Inherited from EnumObject) |
Methods
AddConditionals(String) |
add sql wich is necessary if the property: field, is requested |
AddConditionalsJustPropDependencies(String) |
add whatever is required to support it |
AddConstantForFilter(String) |
FilterDecoder reports that a constant is used in filter gives client a chance to modify it |
AddFilterProperty(String) |
the xpath scanner has detected that this property is used in filter add whatever is required to support it, return value |
AddLinkProperty(String) |
add whatever is required to support it, return value |
AddOrderByAcrossDatabases() |
add the order by clause when the tsql runs across databases |
AddOrderByInDatabase() |
add the order by clause when the tsql runs inside one database |
AddOrderByProperty(String, Boolean) |
Add the information that the TSQL is ordered by the property name if overrideFlags is tru don't check if it is legal to use this property for order by |
AddOrderByProperty(String) |
the xpath scanner has detected that this property is used in orderby add whatever is required to support it, return value |
AddProperty(ObjectProperty) |
add to the collection of properties (Inherited from EnumObject) |
AddPropertyForFilter(String) |
name property is used in filter |
BeforeStatementExecuted(String) |
Allow subclasses to add anything to the statement |
BuildStatement(EnumResult) |
build statement |
ClearHits() |
clear all the conditional tsql which was activated for the fields in this request |
ComputeFixedProperties() |
calculate the list of fixed properties ( their value can be deduced from the filter ) (Inherited from EnumObject) |
FillData(ResultType, StringCollection, Object, StatementBuilder) |
n queries to prepare and the last one to fill the data |
FillDataWithUseFailure(SqlEnumResult, ResultType) |
Get data from Sql Server. If we fail to get into a database then ignore that database |
GetAliasPropertyName(String) |
get the property name as it will be aliased in the result set to the user (Inherited from EnumObject) |
GetData(EnumResult) |
fill StatementBuilder with the information for this level |
GetFixedStringProperty(String, Boolean) |
get a fixed ( with known value from filter ) property of type string (Inherited from EnumObject) |
GetProperties(ObjectPropertyUsages) |
returns the object properties by usage (Inherited from EnumObject) |
GetProperty(String, ObjectPropertyUsages) |
accessor for a property by name and usage ( internal use ) (Inherited from EnumObject) |
GetSqlProperty(String, ObjectPropertyUsages) |
get the property field if it is legal for the usage, else throw |
GetUrnProperties() |
until we have a formal way so that each object declares which properties it uses for urn try this best guess aproach (Inherited from EnumObject) |
Initialize(Object, XPathExpressionBlock) |
initialize this level (Inherited from EnumObject) |
IntegrateParentResult(EnumResult) |
combine StatementBuilder from this level with what was received in the result from the parent level |
PostProcess(EnumResult) |
execute any PostProcess actions |
ResolveComputedField(String) |
a computed field has been used. return its dynamically calculated value |
ResolveLocalLinkLinks() |
resolve all links which can be resolved at the local level |
RestoreInitialState() |
get the object in a clean state remove whatever was changed to resolve the current request |
RetrieveParentRequest() |
Retrive the request that will be sent to the parent level. we must comunicate wht info we need from the parent level here |
StoreInitialState() |
pre initialize the object with the static info. ( resolve local links ) |
TryGetProperty(String, ObjectPropertyUsages) |
accessor for a property by name and usage ( internal use ) (Inherited from EnumObject) |