예제 #1
0
        private DbDialect(DbDialectEnum dialect)
        {
            switch (dialect)
            {
            case DbDialectEnum.PostgreSQL:
                Dialect          = DbDialectEnum.PostgreSQL;
                Encapsulation    = "{0}";
                GetListCountSql  = "SELECT COUNT(*) FROM (SELECT {SelectColumns} FROM {FromClause} {WhereClause} {GroupByClause}) AS u";
                GetPagedListSql  = "Select {SelectColumns} from {FromClause} {WhereClause} {GroupByClause} Order By {OrderBy} LIMIT {RowsPerPage} OFFSET (({PageNumber}-1) * {RowsPerPage})";
                GetFromToListSql = "Select {SelectColumns} from {FromClause} {WhereClause} {GroupByClause} Order By {OrderBy} LIMIT {RowCount} OFFSET ({FromRecord})";
                break;

            case DbDialectEnum.SQLite:
                Dialect          = DbDialectEnum.SQLite;
                Encapsulation    = "{0}";
                GetListCountSql  = "SELECT COUNT(*) FROM (SELECT {SelectColumns} FROM {FromClause} {WhereClause} {GroupByClause}) AS u";
                GetPagedListSql  = "Select {SelectColumns} from {FromClause} {WhereClause} {GroupByClause} Order By {OrderBy} LIMIT {RowsPerPage} OFFSET (({PageNumber}-1) * {RowsPerPage})";
                GetFromToListSql = "Select {SelectColumns} from {FromClause} {WhereClause} {GroupByClause} Order By {OrderBy} LIMIT {RowCount} OFFSET ({FromRecord})";
                break;

            case DbDialectEnum.MySQL:
                Dialect          = DbDialectEnum.MySQL;
                Encapsulation    = "`{0}`";
                GetListCountSql  = "SELECT COUNT(*) FROM (SELECT {SelectColumns} FROM {FromClause} {WhereClause} {GroupByClause}) AS u";
                GetPagedListSql  = "Select {SelectColumns} from {FromClause} {WhereClause} {GroupByClause} Order By {OrderBy} LIMIT {Offset},{RowsPerPage}";
                GetFromToListSql = "Select {SelectColumns} from {FromClause} {WhereClause} {GroupByClause} Order By {OrderBy} LIMIT {FromRecord},{RowCount}";
                break;

            default:
                Dialect          = DbDialectEnum.SQLServer;
                Encapsulation    = "[{0}]";
                GetListCountSql  = "SELECT COUNT(*) FROM (SELECT {SelectColumns} FROM {FromClause} {WhereClause} {GroupByClause}) AS u";
                GetPagedListSql  = "SELECT {SelectNamedColumns} FROM (SELECT ROW_NUMBER() OVER(ORDER BY {OrderBy}) AS PagedNumber, {SelectColumns} FROM {FromClause} {WhereClause} {GroupByClause}) AS u WHERE PagedNUMBER BETWEEN (({PageNumber}-1) * {RowsPerPage} + 1) AND ({PageNumber} * {RowsPerPage})";
                GetFromToListSql = "SELECT {SelectNamedColumns} FROM (SELECT ROW_NUMBER() OVER(ORDER BY {OrderBy}) AS PagedNumber, {SelectColumns} FROM {FromClause} {WhereClause} {GroupByClause}) AS u WHERE PagedNUMBER BETWEEN ({FromRecord} + 1) AND ({FromRecord} + {RowCount})";
                break;
            }
        }
예제 #2
0
 public static DbDialect Instance(DbDialectEnum dialect)
 {
     return(_instance[(int)dialect].Value);
 }
예제 #3
0
 private static DbDialect Retreive(DbDialectEnum dialect)
 {
     return(new DbDialect(dialect));
 }