示例#1
0
        /// <summary>
        /// 获取标准SQL字符串
        /// </summary>
        /// <param name="tp"></param>
        /// <param name="multiTable"></param>
        /// <returns></returns>
        public string ToSqlString(dpz3.db.DatabaseTypes tp, bool multiTable = false)
        {
            switch (tp)
            {
            case DatabaseTypes.Microsoft_Office_Access:
            case DatabaseTypes.Microsoft_Office_Access_v12:
            case DatabaseTypes.Microsoft_SQL_Server:
            case DatabaseTypes.SQLite:
            case DatabaseTypes.SQLite_3:
                return($"[{_name}]");

            case DatabaseTypes.MySQL:
                return($"`{_name}`");

            case DatabaseTypes.PostgreSQL:
                return($"\"{_name}\"");

            default:
                throw new Exception($"尚未支持 {tp.ToString()} 类型数据库");
            }
        }
示例#2
0
        /// <summary>
        /// 获取标准字段SQL字符串
        /// </summary>
        /// <param name="tp"></param>
        /// <param name="multiTable"></param>
        /// <returns></returns>
        public string ToSqlString(dpz3.db.DatabaseTypes tp, bool multiTable = false)
        {
            // 当表不存在时,强制设置未单表模式
            if (_table == null)
            {
                multiTable = false;
            }
            // 判断是否为多表环境
            if (multiTable)
            {
                // 获取表SQL
                string table = _table.ToSqlString(tp);
                if (_name == "*")
                {
                    return($"{table}.*");
                }
                switch (tp)
                {
                case DatabaseTypes.Microsoft_Office_Access:
                case DatabaseTypes.Microsoft_Office_Access_v12:
                case DatabaseTypes.Microsoft_SQL_Server:
                case DatabaseTypes.SQLite:
                case DatabaseTypes.SQLite_3:
                    return($"{table}.[{_name}]");

                case DatabaseTypes.MySQL:
                    return($"{table}.`{_name}`");

                case DatabaseTypes.PostgreSQL:
                    return($"{table}.\"{_name}\"");

                default:
                    throw new Exception($"尚未支持 {tp.ToString()} 类型数据库");
                }
            }
            else
            {
                if (_name == "*")
                {
                    return("*");
                }
                switch (tp)
                {
                case DatabaseTypes.Microsoft_Office_Access:
                case DatabaseTypes.Microsoft_Office_Access_v12:
                case DatabaseTypes.Microsoft_SQL_Server:
                case DatabaseTypes.SQLite:
                case DatabaseTypes.SQLite_3:
                    return($"[{_name}]");

                case DatabaseTypes.MySQL:
                    return($"`{_name}`");

                case DatabaseTypes.PostgreSQL:
                    return($"\"{_name}\"");

                default:
                    throw new Exception($"尚未支持 {tp.ToString()} 类型数据库");
                }
            }
        }