Table of Contents

Class AccessSqlBuilderBase

Namespace
LinqToDB.Internal.DataProvider.Access
Assembly
linq2db.dll
public abstract class AccessSqlBuilderBase : BasicSqlBuilder, ISqlBuilder
Inheritance
object
AccessSqlBuilderBase
Implements
Derived
Inherited Members
Extension Methods

Constructors

AccessSqlBuilderBase(IDataProvider?, MappingSchema, DataOptions, ISqlOptimizer, SqlProviderFlags)

protected AccessSqlBuilderBase(IDataProvider? provider, MappingSchema mappingSchema, DataOptions dataOptions, ISqlOptimizer sqlOptimizer, SqlProviderFlags sqlProviderFlags)

Parameters

provider IDataProvider
mappingSchema MappingSchema
dataOptions DataOptions
sqlOptimizer ISqlOptimizer
sqlProviderFlags SqlProviderFlags

AccessSqlBuilderBase(BasicSqlBuilder)

protected AccessSqlBuilderBase(BasicSqlBuilder parentBuilder)

Parameters

parentBuilder BasicSqlBuilder

Properties

IsNestedJoinSupported

public override bool IsNestedJoinSupported { get; }

Property Value

bool

IsValuesSyntaxSupported

If true, provider supports list of VALUES as a source element of merge command.

protected override bool IsValuesSyntaxSupported { get; }

Property Value

bool

RequiresUniqueRootColumnNames

true when the provider's final SELECT cannot contain two columns that render with the same result-set name. Such providers force final aliases for a root column-name collision (see CanSkipRootAliases(SqlStatement)) instead of skipping root aliases.

protected override bool RequiresUniqueRootColumnNames { get; }

Property Value

bool

SupportsColumnAliasesInSource

If true, provider supports column aliases specification after table alias. E.g. as table_alias (column_alias1, column_alias2).

protected override bool SupportsColumnAliasesInSource { get; }

Property Value

bool

WrapJoinCondition

true if it is needed to wrap join condition with ()

public override bool WrapJoinCondition { get; }

Property Value

bool

Examples

INNER JOIN Table2 t2 ON (t1.Value = t2.Value)

Methods

BuildColumnExpression(SelectQuery?, ISqlExpression, string?, ref bool)

protected override void BuildColumnExpression(SelectQuery? selectQuery, ISqlExpression expr, string? alias, ref bool addAlias)

Parameters

selectQuery SelectQuery
expr ISqlExpression
alias string
addAlias bool

BuildCommand(SqlStatement, int)

protected override void BuildCommand(SqlStatement statement, int commandNumber)

Parameters

statement SqlStatement
commandNumber int

BuildCreateTableIdentityAttribute2(SqlField)

protected override void BuildCreateTableIdentityAttribute2(SqlField field)

Parameters

field SqlField

BuildCreateTablePrimaryKey(SqlCreateTableStatement, string, IEnumerable<string>)

protected override void BuildCreateTablePrimaryKey(SqlCreateTableStatement createTable, string pkName, IEnumerable<string> fieldNames)

Parameters

createTable SqlCreateTableStatement
pkName string
fieldNames IEnumerable<string>

BuildDataTypeFromDataType(DbDataType, bool, bool)

protected override void BuildDataTypeFromDataType(DbDataType type, bool forCreateTable, bool canBeNull)

Parameters

type DbDataType
forCreateTable bool
canBeNull bool

Type could store NULL values (could be used for column table type generation or for databases with explicit typee nullability like ClickHouse).

BuildIsDistinctPredicate(IsDistinct)

protected override void BuildIsDistinctPredicate(SqlPredicate.IsDistinct expr)

Parameters

expr SqlPredicate.IsDistinct

BuildMergeStatement(SqlMergeStatement)

protected override void BuildMergeStatement(SqlMergeStatement merge)

Parameters

merge SqlMergeStatement

BuildObjectName(StringBuilder, SqlObjectName, ConvertType, bool, TableOptions, bool)

Writes database object name into provided StringBuilder instance.

public override StringBuilder BuildObjectName(StringBuilder sb, SqlObjectName name, ConvertType objectType = ConvertType.NameToQueryTable, bool escape = true, TableOptions tableOptions = TableOptions.NotSet, bool withoutSuffix = false)

Parameters

sb StringBuilder

String builder for generated object name.

name SqlObjectName

Name of database object (e.g. table, view, procedure or function).

objectType ConvertType

Type of database object, used to select proper name converter.

escape bool

If true, apply required escaping to name components. Must be true except rare cases when escaping is not needed.

tableOptions TableOptions

Table options if called for table. Used to properly generate names for temporary tables.

withoutSuffix bool

If object name have suffix, which could be detached from main name, this parameter disables suffix generation (enables generation of only main name part).

Returns

StringBuilder

sb parameter value.

BuildQueryExtensions(SqlStatement)

protected override void BuildQueryExtensions(SqlStatement statement)

Parameters

statement SqlStatement

BuildSqlCaseExpression(SqlCaseExpression)

protected override void BuildSqlCaseExpression(SqlCaseExpression caseExpression)

Parameters

caseExpression SqlCaseExpression

BuildSqlComment(StringBuilder, SqlComment)

protected override StringBuilder BuildSqlComment(StringBuilder sb, SqlComment comment)

Parameters

sb StringBuilder
comment SqlComment

Returns

StringBuilder

BuildSqlConditionExpression(SqlConditionExpression)

protected override void BuildSqlConditionExpression(SqlConditionExpression conditionExpression)

Parameters

conditionExpression SqlConditionExpression

BuildSqlParameterCastExpression(SqlParameterCastExpression)

Renders a parameter usage that was marked as needing an explicit type. The node states no type of its own, so the type comes from GetParameterCastType(SqlParameter); a null from there means this provider wants no cast at this position after all.

protected override void BuildSqlParameterCastExpression(SqlParameterCastExpression parameterCast)

Parameters

parameterCast SqlParameterCastExpression

BuildSubQueryExtensions(SqlStatement)

protected override void BuildSubQueryExtensions(SqlStatement statement)

Parameters

statement SqlStatement

BuildUpdateClause(SqlStatement, SelectQuery, SqlUpdateClause)

protected override void BuildUpdateClause(SqlStatement statement, SelectQuery selectQuery, SqlUpdateClause updateClause)

Parameters

statement SqlStatement
selectQuery SelectQuery
updateClause SqlUpdateClause

BuildValue(DbDataType?, object?)

protected override void BuildValue(DbDataType? dataType, object? value)

Parameters

dataType DbDataType?
value object

CommandCount(SqlStatement)

public override int CommandCount(SqlStatement statement)

Parameters

statement SqlStatement

Returns

int

Convert(StringBuilder, string, ConvertType)

public override StringBuilder Convert(StringBuilder sb, string value, ConvertType convertType)

Parameters

sb StringBuilder
value string
convertType ConvertType

Returns

StringBuilder

FirstFormat(SelectQuery)

protected override string FirstFormat(SelectQuery selectQuery)

Parameters

selectQuery SelectQuery

Returns

string

ParenthesizeJoin(List<SqlJoinedTable>)

protected override bool ParenthesizeJoin(List<SqlJoinedTable> joins)

Parameters

joins List<SqlJoinedTable>

Returns

bool

StartStatementQueryExtensions(SelectQuery?)

protected override void StartStatementQueryExtensions(SelectQuery? selectQuery)

Parameters

selectQuery SelectQuery

TryConvertParameterToSql(SqlParameterValue)

protected override bool TryConvertParameterToSql(SqlParameterValue paramValue)

Parameters

paramValue SqlParameterValue

Returns

bool