private void InjectTableVariables(StringBuilder sql, BuildArgs buildArgs, bool skipTimestampColumn) { if (buildArgs.Executable == null) { Throw(QueryTalkExceptionType.NullExecutableInnerException, null, null); } foreach (var argument in (buildArgs.Executable.Arguments).Where(a => a.DT.IsTableVariable())) { var view = (View)argument.Value; sql.NewLine(Text.Declare).S() .Append(argument.ParamName) .Append(Text._As_) .Append(Text.Table).S() .NewLine(Text.LeftBracket); BeginTableChainer.BuildFromView(sql, view, skipTimestampColumn); sql.NewLine(Text.RightBracket) .Terminate(); if (view.RowCount > 0) { BeginTableChainer.Fill(sql, argument.ParamName, view); } } }
/// <summary> /// Declares a table variable using the data class type. /// </summary> /// <param name="prev">A predecessor object.</param> /// <param name="table">The name of a table variable.</param> /// <param name="skipTimestampColumn">If true, then timestamp column is not included. (Used only with DbRow types.)</param> /// <typeparam name="T">A type of a data class.</typeparam> public static BeginTableChainer DesignTable <T>(this IAny prev, string table, bool skipTimestampColumn = false) { return(BeginTableChainer.DesingByType <T>((Chainer)prev, table, skipTimestampColumn)); }