Partager via


SqlObjectBase Class

Definition

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
SqlObjectBase
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)

Applies to