MBroker
 Указатель Классы Пространства имен Файлы Функции Переменные Определения типов Перечисления Элементы перечислений Свойства
Открытые члены | Открытые статические члены | Защищенные члены | Защищенные данные | Статические защищенные данные | Полный список членов класса
Класс MBroker.DbLevel.Base.SqlBuilderabstract
Граф наследования:MBroker.DbLevel.Base.SqlBuilder:
MBroker.DbLevel.Interface.ISqlBuilder MBroker.DbLevel.mssql.MsSqlBuilder MBroker.DbLevel.pgsql.PgSqlBuilder

Открытые члены

delegate bool CheckField (Context context, string sqlCode, string field)
 
string BuildCondition (Context context, object condition, ref int paramCount, ref List< QueryParam > paramList, CheckField hasfield, string vClass=null)
 Формирование условия Подробнее...
 
string BuildSqlQuery (Context context, object description, ref int paramCount, ref List< QueryParam > queryParams, ref List< string > fields, out bool hasUserParams, ViewDesc viewDescription, CheckField hasField, bool forceAllColumns=false, string vClass=null, bool includeBlockBase=false)
 Формирование строки SQL запроса Подробнее...
 
- Открытые члены inherited from MBroker.DbLevel.Interface.ISqlBuilder
string BuildSqlQuery (Context context, object description, ref int paramCount, ref List< QueryParam > queryParams, ref List< string > fields, out bool hasUserParams, ViewDesc viewDescription, SqlBuilder.CheckField hasField, bool forceAllColumns=false, string vClass=null, bool includeBlockBase=false)
 Формирование строки SQL запроса Подробнее...
 
string BuildCondition (Context context, object condition, ref int paramCount, ref List< QueryParam > paramList, SqlBuilder.CheckField hasField, string vClass=null)
 Формирование условия Подробнее...
 

Открытые статические члены

static object ConvertOrderObject (ref IDictionary< string, object > description, string view, string classView)
 

Защищенные члены

 SqlBuilder (CacheManager cacheManager)
 
string CleanString (string strIn)
 Очистка строки Подробнее...
 
void ValidateSqlType (string type)
 Валидация SQL типов Подробнее...
 
string RemoveNumbers (string strIn)
 Удаление чисел Подробнее...
 
void FormatField (object fieldDescription, ref int paramCount, ref List< QueryParam > paramList, out string fieldStr, out string fieldName, bool renameField=false)
 Формирование полей Подробнее...
 
string BuildRef (Context context, object refDescription, ref int paramCount, ref List< QueryParam > paramList)
 Формирование проваливания Подробнее...
 
bool ReductionInCondition (ViewDesc view, Context context, string conditionField, IEnumerable< QueryParam > queryParams, ref List< int > conditionValues)
 
abstract void BuildTopOperator (IDictionary< string, object > descDict, ref StringBuilder query)
 
abstract string BuildLikeOperator (ref List< QueryParam > paramList, object condVal, ref int paramCount, string parName, string sk)
 Формирование оператора, ограничивающего количество строк Подробнее...
 
abstract void BuildGroupByOperator (string jsonGroup, ref string groupBy, ref StringBuilder query, ref List< string > fields, ref string selectAddition)
 Формирование Group by оператора Подробнее...
 
abstract string BuildBaseCondition (Context context, IDictionary< string, object > descDict, ref List< QueryParam > queryParams, ref int paramCount, ViewDesc viewDescription, CheckField hasField, bool includeBlockBase=false)
 Сборка фильтра подразделений Подробнее...
 
abstract string BuildInNinCondition (ref List< QueryParam > paramList, Context context, object condVal, ref int paramCount, string parName, CheckField hasField, string sk, string vClass=null)
 Формирование условия для nin, in Подробнее...
 
abstract string BuildTransliterationLikeOperator (ref List< QueryParam > paramList, object condVal, ref int paramCount, string parName, string sk)
 
abstract string BuildTransliterationUeqOperator (ref List< QueryParam > paramList, object condVal, ref int paramCount, string parName, string sk)
 

Защищенные данные

readonly CacheManager CacheManager
 Кеш Подробнее...
 
readonly ConcurrentDictionary
< string, bool > 
ConFields = new ConcurrentDictionary<string, bool>()
 Кэш полей Подробнее...
 

Статические защищенные данные

static readonly Dictionary
< string, string > 
OperatorList
 Коллекция операторов Подробнее...
 
static readonly Dictionary
< char, string > 
OperatorReplaceList
 
static readonly ResourceManager Rm
 Манагер ресурсов Подробнее...
 

Конструктор(ы)

MBroker.DbLevel.Base.SqlBuilder.SqlBuilder ( CacheManager  cacheManager)
protected

Методы

abstract string MBroker.DbLevel.Base.SqlBuilder.BuildBaseCondition ( Context  context,
IDictionary< string, object >  descDict,
ref List< QueryParam queryParams,
ref int  paramCount,
ViewDesc  viewDescription,
CheckField  hasField,
bool  includeBlockBase = false 
)
protectedpure virtual

Сборка фильтра подразделений

Аргументы
context
descDict
queryParams
paramCount
viewDescription
hasField

Замещается в MBroker.DbLevel.mssql.MsSqlBuilder и MBroker.DbLevel.pgsql.PgSqlBuilder.

string MBroker.DbLevel.Base.SqlBuilder.BuildCondition ( Context  context,
object  condition,
ref int  paramCount,
ref List< QueryParam paramList,
CheckField  hasfield,
string  vClass = null 
)

Формирование условия

Аргументы
contextКонтекст
conditionУсловие
paramCountЧисло параметров
paramListКоллекция параметров
nowServiceBaseБрокер с учетом зеркала
vClass
Возвращает
abstract void MBroker.DbLevel.Base.SqlBuilder.BuildGroupByOperator ( string  jsonGroup,
ref string  groupBy,
ref StringBuilder  query,
ref List< string >  fields,
ref string  selectAddition 
)
protectedpure virtual

Формирование Group by оператора

Аргументы
jsonGroupJson
groupByРезультирующая строка
querySQL запрос
fieldsПоля
selectAdditionСтрока для коррекция SELECT

Замещается в MBroker.DbLevel.mssql.MsSqlBuilder и MBroker.DbLevel.pgsql.PgSqlBuilder.

abstract string MBroker.DbLevel.Base.SqlBuilder.BuildInNinCondition ( ref List< QueryParam paramList,
Context  context,
object  condVal,
ref int  paramCount,
string  parName,
CheckField  hasField,
string  sk,
string  vClass = null 
)
protectedpure virtual

Формирование условия для nin, in

Аргументы
paramList
contextКонтекст
condVal
paramCount
parName
sk
hasField
vClass
Возвращает

Замещается в MBroker.DbLevel.mssql.MsSqlBuilder и MBroker.DbLevel.pgsql.PgSqlBuilder.

abstract string MBroker.DbLevel.Base.SqlBuilder.BuildLikeOperator ( ref List< QueryParam paramList,
object  condVal,
ref int  paramCount,
string  parName,
string  sk 
)
protectedpure virtual

Формирование оператора, ограничивающего количество строк

Аргументы
paramList
condVal
paramCount
parName
sk
Возвращает

Замещается в MBroker.DbLevel.mssql.MsSqlBuilder и MBroker.DbLevel.pgsql.PgSqlBuilder.

string MBroker.DbLevel.Base.SqlBuilder.BuildRef ( Context  context,
object  refDescription,
ref int  paramCount,
ref List< QueryParam paramList 
)
protected

Формирование проваливания

Аргументы
contextКонтекст
refDescriptionОписание проваливания
paramCountЧисло параметров
paramListКоллекция параметров
Возвращает
string MBroker.DbLevel.Base.SqlBuilder.BuildSqlQuery ( Context  context,
object  description,
ref int  paramCount,
ref List< QueryParam queryParams,
ref List< string >  fields,
out bool  hasUserParams,
ViewDesc  viewDescription,
CheckField  hasField,
bool  forceAllColumns = false,
string  vClass = null,
bool  includeBlockBase = false 
)

Формирование строки SQL запроса

Аргументы
contextКонтекст
descriptionJson объект запроса
paramCountКоличество параметров
queryParamsПараметры запроса
fieldsПоля
hasUserParams
viewDescriptionОписание представления
forceAllColumns
vClassКласс представления или табличной функции
includeBlockBaseВключать заблокированные подразделения
Возвращает
abstract void MBroker.DbLevel.Base.SqlBuilder.BuildTopOperator ( IDictionary< string, object >  descDict,
ref StringBuilder  query 
)
protectedpure virtual

Аргументы
descDict
query

Замещается в MBroker.DbLevel.mssql.MsSqlBuilder и MBroker.DbLevel.pgsql.PgSqlBuilder.

abstract string MBroker.DbLevel.Base.SqlBuilder.BuildTransliterationLikeOperator ( ref List< QueryParam paramList,
object  condVal,
ref int  paramCount,
string  parName,
string  sk 
)
protectedpure virtual
abstract string MBroker.DbLevel.Base.SqlBuilder.BuildTransliterationUeqOperator ( ref List< QueryParam paramList,
object  condVal,
ref int  paramCount,
string  parName,
string  sk 
)
protectedpure virtual
delegate bool MBroker.DbLevel.Base.SqlBuilder.CheckField ( Context  context,
string  sqlCode,
string  field 
)

Аргументы
context
sqlCode
field
string MBroker.DbLevel.Base.SqlBuilder.CleanString ( string  strIn)
protected

Очистка строки

Аргументы
strIn
Возвращает
static object MBroker.DbLevel.Base.SqlBuilder.ConvertOrderObject ( ref IDictionary< string, object >  description,
string  view,
string  classView 
)
static
void MBroker.DbLevel.Base.SqlBuilder.FormatField ( object  fieldDescription,
ref int  paramCount,
ref List< QueryParam paramList,
out string  fieldStr,
out string  fieldName,
bool  renameField = false 
)
protected

Формирование полей

Аргументы
fieldDescriptionОписание полей
paramCountЧисло параметров
paramListКоллекция параметров
fieldStrСтрока полей
fieldNameИмя поля
renameFieldФлаг переименования поля
bool MBroker.DbLevel.Base.SqlBuilder.ReductionInCondition ( ViewDesc  view,
Context  context,
string  conditionField,
IEnumerable< QueryParam queryParams,
ref List< int >  conditionValues 
)
protected
string MBroker.DbLevel.Base.SqlBuilder.RemoveNumbers ( string  strIn)
protected

Удаление чисел

Аргументы
strIn
Возвращает
void MBroker.DbLevel.Base.SqlBuilder.ValidateSqlType ( string  type)
protected

Валидация SQL типов

Аргументы
type

Данные класса

readonly CacheManager MBroker.DbLevel.Base.SqlBuilder.CacheManager
protected

Кеш

readonly ConcurrentDictionary<string, bool> MBroker.DbLevel.Base.SqlBuilder.ConFields = new ConcurrentDictionary<string, bool>()
protected

Кэш полей

readonly Dictionary<string, string> MBroker.DbLevel.Base.SqlBuilder.OperatorList
staticprotected
Инициализатор
= new Dictionary<string, string>
{
{"sum", "SUM({0})"},
{"avg", "AVG({0})"},
{"count", "COUNT({0})"},
{"max", "MAX({0})"},
{"min", "MIN({0})"},
{"coalesce", "COALESCE({0}, {1})"},
{"cast", "CAST({0} AS {1})"}
}

Коллекция операторов

readonly Dictionary<char, string> MBroker.DbLevel.Base.SqlBuilder.OperatorReplaceList
staticprotected
Инициализатор
= new Dictionary<char, string>
{
{'#', "DISTINCT "}
}
readonly ResourceManager MBroker.DbLevel.Base.SqlBuilder.Rm
staticprotected
Инициализатор
= new ResourceManager("MBroker.Localization.locale",
typeof(WorkerBroker).Assembly)

Манагер ресурсов


Объявления и описания членов класса находятся в файле: