Пример #1
0
        /// <summary>
        /// 获取信息
        /// </summary>
        /// <param name="dbtype"></param>
        /// <returns></returns>
        public static DriverDLL GetDriver(string dbtype)
        {
            DriverDLL driver = null;

            dicDBType.TryGetValue(dbtype, out driver);
            return(driver);
        }
Пример #2
0
        /// <summary>
        /// 已
        /// </summary>
        private static void Init()
        {
            //oralce
            lock (lock_obj)
            {
                //Oracle
                DriverDLL driverDLL = new DriverDLL();
                driverDLL.DriverDLLName     = "Oracle.ManagedDataAccess";
                driverDLL.DBType            = "Oracle";
                dicDBType[driverDLL.DBType] = driverDLL;
                //MySql
                driverDLL = new DriverDLL();
                driverDLL.DriverDLLName = "MySql.Data";

                driverDLL.DBType            = "MySql";
                dicDBType[driverDLL.DBType] = driverDLL;
                //SQLServer
                driverDLL = new DriverDLL();
                driverDLL.DriverDLLName     = "System.Data";
                driverDLL.DBType            = "SqlServer";
                dicDBType[driverDLL.DBType] = driverDLL;
                //PostgreSQL
                driverDLL = new DriverDLL();
                driverDLL.DriverDLLName = "Npgsql";

                driverDLL.DBType            = "PostgreSQL";
                dicDBType[driverDLL.DBType] = driverDLL;
            }
        }
Пример #3
0
        /// <summary>
        /// 加载数据库信息
        /// 读取数据库类型的DLL文件
        /// </summary>
        /// <param name="dbXml"></param>
        public static void LoadXml(string dbXml)
        {
            //
            if (!isInit)
            {
                Init();
                isInit = true;
            }

            //2019-04-06
            if (!File.Exists(dbXml))
            {
                Logger.Singleton.Warn("没有全局配置XML文件," + dbXml);
                return;
            }
            if (!lstDBType.Contains(dbXml))
            {
                //没有加载过的全局文件才加载
                XmlDocument doc = new XmlDocument();
                doc.Load(dbXml);
                foreach (XmlNode child in doc.DocumentElement.ChildNodes)
                {
                    XmlNode dll = child.SelectSingleNode("DriverDLL");
                    // XmlNode cls = child.SelectSingleNode("DriverClass");
                    DriverDLL driver = new DriverDLL();
                    driver.DBType            = child.Name;
                    driver.DriverDLLName     = dll == null ? "" : dll.OuterXml;
                    dicDBType[driver.DBType] = driver;
                }
                lstDBType.Add(dbXml);
            }
        }
Пример #4
0
        /// <summary>
        /// 加载数据库信息
        /// 读取数据库类型的DLL文件
        /// </summary>
        /// <param name="dbXml"></param>
        public static void LoadXml(string dbXml)
        {
            //
            Init();
            XmlDocument doc = new XmlDocument();

            doc.Load(dbXml);
            foreach (XmlNode child in doc.DocumentElement.ChildNodes)
            {
                XmlNode   dll    = child.SelectSingleNode("DriverDLL");
                XmlNode   cls    = child.SelectSingleNode("DriverClass");
                DriverDLL driver = new DriverDLL();
                driver.DBType        = child.Name;
                driver.DriverDLLName = dll == null ? "" : dll.OuterXml;

                dicDBType[driver.DBType] = driver;
            }
        }