Пример #1
0
        public ISqlDataSource GetDataSource(bool createIfNotExists)
        {
            ISqlDataSource ret = null;

            if (_credentials.DSN.Length > 0)
            {
                ret = new MySqlDataSource(this);
            }
            else
            {
                DataSourceType type = SqlDataSource.GetDriverType(_credentials);
                switch (type)
                {
                case DataSourceType.MySqlOdbc:
                    ret = new MySqlDataSource(this);
                    break;

                case DataSourceType.MySqlNative:
                default:
                    ret = new MySqlNativeDataSource(this);
                    break;
                }
            }

            return(ret);
        }
Пример #2
0
        //获取表列表
        public IActionResult GetDataTables(string SchemaName)
        {
            ISqlDataSource   dataSource = DataToModel.GetDataSource("mysql");
            List <DataTable> list       = dataSource.GetDataTables(SchemaName);
            ResultMsg        msg        = new ResultMsg(true);

            msg.Data = list;
            return(Json(msg));
        }
Пример #3
0
        //获取数据库列表
        public IActionResult GetDataSchema()
        {
            ISqlDataSource    dataSource = DataToModel.GetDataSource("mysql");
            List <DataSchema> list       = dataSource.GetSchemas();
            ResultMsg         msg        = new ResultMsg(true);

            msg.Data = list;
            return(Json(msg));
        }
Пример #4
0
        public IActionResult CodeViewWeb(string SchemaName, string TableName, string SetTableName)
        {
            ISqlDataSource   dataSource = DataToModel.GetDataSource("mysql");
            DataTable        table      = dataSource.GetDataTableByName(SchemaName, TableName);
            List <DataField> list       = dataSource.GetDataFieldByName(SchemaName, TableName);
            StringBuilder    sb         = new StringBuilder();

            //外部设置的表名
            if (string.IsNullOrEmpty(SetTableName))
            {
                SetTableName = table.TableName;
            }

            if (table != null)
            {
                sb.Append("  /// <summary>\r\n");
                sb.Append("  ///" + table.TableNote).Append("\r\n");
                sb.Append("  /// </summary>").Append("\r\n");
                sb.Append("  public  class ").Append(SetTableName).Append("\r\n").Append("    {");
                sb.Append("\r\n");
                foreach (var item in list)
                {
                    string systemtype = DataTypeExtend.MySql2CSharpType(item.FieldType);
                    if (item.FieldName == "Guid")
                    {
                        systemtype = "Guid";
                    }
                    string def     = DataTypeExtend.GetDefValue(systemtype);
                    string field_p = "_" + DataTypeExtend.FirstLetterLowercase(item.FieldName);
                    //long特殊处理
                    if (systemtype == "long")
                    {
                        systemtype = "string";
                        def        = "\"0\"";
                    }

                    sb.Append(string.Format("        private {0} {1}= {2};", systemtype, field_p, def));
                    sb.Append("\r\n");
                    sb.Append("        /// <summary>\r\n");
                    sb.Append("        ///" + item.FieldNote).Append("\r\n");
                    sb.Append("        /// </summary>").Append("\r\n");

                    sb.Append(string.Format("      public virtual {0} {1}", systemtype, item.FieldName)); sb.Append("\r\n");
                    sb.Append("        {"); sb.Append("\r\n");
                    sb.Append("           get { return " + field_p + "; }"); sb.Append("\r\n");
                    sb.Append("           set { " + field_p + " = value; }"); sb.Append("\r\n");
                    sb.Append("        }"); sb.Append("\r\n");
                }
                sb.Append("    }");
            }
            ResultMsg msg = new ResultMsg(true);

            msg.Data = sb.ToString();
            return(Json(msg));
        }
Пример #5
0
        protected DataSourceBase(SqlDBCredentials sqlCredentials)
        {
            _internalDatabaseType = InternalDatabaseType.Unknown;
            Credentials           = sqlCredentials;
            m_DB = SqlConnectionPool.Instance(sqlCredentials).GetDataSource();

            if (m_DB == null)
            {
                throw new DataSourceException("Could not instantiate {0} with the following credentials: {1}", GetType(), sqlCredentials);
            }

            if (CheckDeclarations)
            {
                ValidateMethods(GetType());
            }

            LoadCachedTypeInformation();
        }
Пример #6
0
        public static DBResult GetDatabaseVersion(SqlDBCredentials credentials, out SoftwareVersion version, out InternalDatabaseType databaseType)
        {
            DBResult retVal = new DBResult(DBResult.Result.Success);

            try
            {
                _databaseVersionLock.Lock();
                version      = null;
                databaseType = InternalDatabaseType.Unknown;
                String indexKey = credentials.ToParsableString();
                if (!_databaseVersionLookup.TryGetValue(indexKey, out version))
                {
                    ISqlDataSource     ds = SqlConnectionPool.Instance(credentials).GetDataSource();
                    DatabaseDataReader reader;

                    QueryString sql = ds.FormatTrusted("SELECT * FROM I.seq where name in ('{0}', '{1}')", KEY_DB_TYPE, KEY_SCHEMA_VER);
                    retVal = ds.Query(sql, out reader);
                    if (retVal.ResultCode == DBResult.Result.Success && reader.HasRows)
                    {
                        while (reader.Read())
                        {
                            String key = DBUtil.GetString(reader[COL_KEY]);
                            if (key == KEY_SCHEMA_VER)
                            {
                                version = DBUtil.GetSoftwareVersion(reader[COL_VALUE]);
                            }
                            else if (key == KEY_DB_TYPE)
                            {
                                databaseType = (InternalDatabaseType)DBUtil.GetInt32(reader[COL_VALUE]);
                            }
                        }
                        _databaseVersionLookup.Add(indexKey, version);
                    }
                }
            }
            finally
            {
                _databaseVersionLock.Unlock();
            }
            return(retVal);
        }
Пример #7
0
 public DotsDataSource(SqlDBCredentials credentials)
 {
     DB = SqlConnectionPool.Instance(credentials).GetDataSource();
 }