Beispiel #1
0
        public string GetSql(string sourceTable)
        {
            StringBuilder sb = new StringBuilder();

            sb.Append(this.GetJoinType());
            sb.Append(' ');
            sb.Append(SuperSql.FormatTable(this.Table, this.Parameters));
            if (!string.IsNullOrEmpty(this.TableAlias))
            {
                sb.Append(" as ");
                sb.Append(SuperSql.FormatTableAlias(this.TableAlias, this.Parameters));
            }
            sb.Append(" ON ");

            StringBuilder ex = new StringBuilder();

            foreach (IJoinItem item in this._expressions)
            {
                if (ex.Length > 0)
                {
                    ex.Append(" AND ");
                }
                if (item.IsRaw)
                {
                    ex.Append(item.Value);
                }
                else
                {
                    ex.Append(SuperSql.FormatTableAlias(sourceTable, this.Parameters));
                    ex.Append('.');
                    ex.Append(SuperSql.FormatColumn(item.Column, this.Parameters));
                    ex.Append('=');
                    if (string.IsNullOrEmpty(this.TableAlias))
                    {
                        ex.Append(SuperSql.FormatTable(this.Table, this.Parameters));
                    }
                    else
                    {
                        ex.Append(SuperSql.FormatTableAlias(this.TableAlias, this.Parameters));
                    }
                    ex.Append('.');
                    ex.Append(SuperSql.FormatColumn(item.Value, this.Parameters));
                }
            }
            sb.Append(ex);
            return(sb.ToString());
        }
Beispiel #2
0
        public void FormatTable()
        {
            var table = "tab_users";

            SuperSql.DefaultFormatter = FormatterLibrary.MsSql;

            var result1 = SuperSql.FormatTable(table);

            Assert.Equal('[' + table + ']', result1);

            // SuperSql.DefaultFormatter = FormatterLibrary.MySql;
            // var result2 = SuperSql.FormatTable(table);
            // Assert.Equal('`' + table + '`', result2);
            //
            // SuperSql.DefaultFormatter.EscapeEnabled = false;
            // var result3 = SuperSql.FormatTable(table);
            // Assert.Equal(table, result3);
        }