/// <summary> /// Builds the SQL text of the specified merge query. /// </summary> /// <param name="query">The query to consider.</param> /// <param name="parameterSet">The parameter set to consider.</param> /// <param name="scriptVariableSet">The script variable set to consider.</param> /// <param name="log">The log to consider.</param> /// <returns>Returns the built query text.</returns> protected override string GetSqlText_Query( IDbCompositeQuery query, IDataElementSet parameterSet = null, IScriptVariableSet scriptVariableSet = null, IBdoLog log = null) { var queryString = ""; // we build the query switch (query.Kind) { case DbQueryKind.Insert: break; // Upsert case DbQueryKind.Upsert: { //queryString = "merge "; //queryString += GetSqlText_Table( // query.DataModule, query.Schema, query.DataTable, query.DataTableAlias, // DbFieldViewMode.CompleteNameAsAlias, query.DataModule, query.Schema, // scriptVariableSet: scriptVariableSet, log: log); //if (query.SelectJoinStatement != null) //{ // query.SelectJoinStatement.Kind = DbQueryJoinKind.Left; // var subQueryString = GetSqlText_Join(query.SelectJoinStatement, query, parameterSet, scriptVariableSet, log); // subQueryString = subQueryString.Substring("left join ".Length); // queryString += subQueryString; //} //queryString += " when matched "; //queryString += BuildQuery(query.MatchedQuery, DbQueryParameterMode.Scripted, parameterSet, scriptVariableSet, log); //UpdateParameterSet(query.ParameterSet, query.MatchedQuery); //queryString += " when not matched "; //queryString += BuildQuery(query.NotMatchedQuery, DbQueryParameterMode.Scripted, parameterSet, scriptVariableSet, log); //queryString += ";"; //UpdateParameterSet(query.ParameterSet, query.NotMatchedQuery); } break; } return(queryString); }
// Builds merge query ---------------------- /// <summary> /// Builds the SQL text of the specified merge query. /// </summary> /// <param name="query">The query to consider.</param> /// <param name="log">The log to consider.</param> /// <param name="parameterSet">The parameter set to consider.</param> /// <param name="scriptVariableSet">The script variable set to consider.</param> /// <returns>Returns the built query text.</returns> protected abstract string GetSqlText_Query( IDbCompositeQuery query, IDataElementSet parameterSet = null, IScriptVariableSet scriptVariableSet = null, IBdoLog log = null);