Ejemplo n.º 1
0
        private void CreateTextDsn(SystemDSN dsn)
        {
            // get driver path
            string driver = GetDriverPath(TEXT_DRIVER);

            // add ODBC name
            RegisterDSN(dsn.Name, TEXT_DRIVER);

            // add ODBC tree
            RegistryKey keyDsn = CreateDSNNode(dsn.Name);

            keyDsn.SetValue("Driver", driver);
            keyDsn.SetValue("Description", DSN_DESCRIPTION);
            keyDsn.SetValue("DefaultDir", dsn.DatabaseName);
            keyDsn.SetValue("DriverId", 27);
            keyDsn.SetValue("FIL", "text;");
            keyDsn.SetValue("SafeTransactions", 0);
            keyDsn.SetValue("UID", "");

            // add "Engines/Text" subkey
            RegistryKey keyEngines = keyDsn.CreateSubKey("Engines");
            RegistryKey keyText    = keyEngines.CreateSubKey("Text");

            keyText.SetValue("ImplicitCommitSync", "");
            keyText.SetValue("Threads", 3);
            keyText.SetValue("UserCommitSync", "Yes");

            keyText.Close();
            keyEngines.Close();
            keyDsn.Close();
        }
Ejemplo n.º 2
0
        private void CreateMsAccess2010Dsn(SystemDSN dsn)
        {
            // get driver path
            string driver = GetDriverPath(MSACCESS2010_DRIVER);

            // add ODBC name
            RegisterDSN(dsn.Name, MSACCESS2010_DRIVER);

            // add ODBC tree
            RegistryKey keyDsn = CreateDSNNode(dsn.Name);

            keyDsn.SetValue("Driver", driver);
            keyDsn.SetValue("Description", DSN_DESCRIPTION);
            keyDsn.SetValue("DBQ", dsn.DatabaseName);
            keyDsn.SetValue("DriverId", 25);
            keyDsn.SetValue("FIL", "MS Access;");
            keyDsn.SetValue("SafeTransactions", 0);
            keyDsn.SetValue("UID", dsn.DatabaseUser);
            keyDsn.SetValue("PWD", dsn.DatabasePassword);

            // add "Engines/Jet" subkey
            RegistryKey keyEngines = keyDsn.CreateSubKey("Engines");
            RegistryKey keyJet     = keyEngines.CreateSubKey("Jet");

            keyJet.SetValue("ImplicitCommitSync", "");
            keyJet.SetValue("MaxBufferSize", 2048);
            keyJet.SetValue("PageTimeout", 5);
            keyJet.SetValue("Threads", 3);
            keyJet.SetValue("UserCommitSync", "Yes");

            keyJet.Close();
            keyEngines.Close();
            keyDsn.Close();
        }
Ejemplo n.º 3
0
        private void CreateExcel2010Dsn(SystemDSN dsn)
        {
            // get driver path
            string driver = GetDriverPath(MSEXCEL2010_DRIVER);

            // add ODBC name
            RegisterDSN(dsn.Name, MSEXCEL2010_DRIVER);

            // add ODBC tree
            RegistryKey keyDsn = CreateDSNNode(dsn.Name);

            keyDsn.SetValue("Driver", driver);
            keyDsn.SetValue("Description", DSN_DESCRIPTION);
            keyDsn.SetValue("DBQ", dsn.DatabaseName);
            keyDsn.SetValue("DefaultDir", Path.GetDirectoryName(dsn.DatabaseName));
            keyDsn.SetValue("DriverId", 790);
            keyDsn.SetValue("FIL", "excel 8.0;");
            keyDsn.SetValue("SafeTransactions", 0);
            keyDsn.SetValue("UID", "");
            keyDsn.SetValue("ReadOnly", new byte[] { 1 });

            // add "Engines/Excel" subkey
            RegistryKey keyEngines = keyDsn.CreateSubKey("Engines");
            RegistryKey keyExcel   = keyEngines.CreateSubKey("Excel");

            keyExcel.SetValue("ImplicitCommitSync", "");
            keyExcel.SetValue("MaxScanRows", 8);
            keyExcel.SetValue("FirstRowHasNames", new byte[] { 1 });
            keyExcel.SetValue("Threads", 3);
            keyExcel.SetValue("UserCommitSync", "Yes");

            keyExcel.Close();
            keyEngines.Close();
            keyDsn.Close();
        }
Ejemplo n.º 4
0
        public virtual void UpdateDSN(SystemDSN dsn)
        {
            // delete DSN
            DeleteDSN(dsn.Name);

            // create again
            CreateDSN(dsn);
        }
Ejemplo n.º 5
0
        private void CreateMsSqlDsn(SystemDSN dsn, string driverName)
        {
            // get driver path
            string driver = GetDriverPath(driverName);

            // add ODBC name
            RegisterDSN(dsn.Name, driverName);

            // add ODBC tree
            RegistryKey keyDsn = CreateDSNNode(dsn.Name);

            keyDsn.SetValue("Server", dsn.DatabaseServer);
            keyDsn.SetValue("Driver", driver);
            keyDsn.SetValue("Description", DSN_DESCRIPTION);
            keyDsn.SetValue("Database", dsn.DatabaseName);
            keyDsn.SetValue("LastUser", dsn.DatabaseUser);
            keyDsn.Close();
        }
Ejemplo n.º 6
0
        private void CreateMariaDBDsn(SystemDSN dsn)
        {
            // get driver path
            string driver = GetDriverPath(MARIADB_DRIVER);

            // add ODBC name
            RegisterDSN(dsn.Name, MARIADB_DRIVER);

            // add ODBC tree
            RegistryKey keyDsn = CreateDSNNode(dsn.Name);

            keyDsn.SetValue("SERVER", dsn.DatabaseServer);
            keyDsn.SetValue("Driver", driver);
            keyDsn.SetValue("DESCRIPTION", DSN_DESCRIPTION);
            keyDsn.SetValue("DATABASE", dsn.DatabaseName);
            keyDsn.SetValue("UID", dsn.DatabaseUser);
            keyDsn.SetValue("PWD", dsn.DatabasePassword);
            keyDsn.Close();
        }
Ejemplo n.º 7
0
        public virtual void CreateDSN(SystemDSN dsn)
        {
            switch (dsn.Driver.ToLower())
            {
            case "mssql":
                CreateMsSqlDsn(dsn, MSSQL_DRIVER);
                break;

            case "mssqlnative":
                CreateMsSqlDsn(dsn, MSSQL_NATIVE_DRIVER);
                break;

            case "mysql":
                CreateMySqlDsn(dsn);
                break;

            case "mariadb":
                CreateMariaDBDsn(dsn);
                break;

            case "msaccess":
                CreateMsAccessDsn(dsn);
                break;

            case "msaccess2010":
                CreateMsAccess2010Dsn(dsn);
                break;

            case "excel":
                CreateExcelDsn(dsn);
                break;

            case "excel2010":
                CreateExcel2010Dsn(dsn);
                break;

            case "text":
                CreateTextDsn(dsn);
                break;
            }
        }
Ejemplo n.º 8
0
        public virtual SystemDSN GetDSN(string dsnName)
        {
            // check DSN name
            RegistryKey keyNames = Registry.LocalMachine.OpenSubKey(ODBC_NAMES_KEY);

            if (keyNames == null)
            {
                return(null);
            }

            string driverName = (string)keyNames.GetValue(dsnName);

            if (driverName == null)
            {
                return(null);
            }

            // open DSN tree
            RegistryKey keyDsn = Registry.LocalMachine.OpenSubKey(ODBC_SOURCES_KEY + "\\" + dsnName);

            if (keyDsn == null)
            {
                return(null);
            }

            SystemDSN dsn = new SystemDSN();

            dsn.Name = dsnName;
            if (driverName == MSSQL_DRIVER || driverName == MSSQL_NATIVE_DRIVER)
            {
                dsn.Driver         = (driverName == MSSQL_DRIVER) ? "MsSql" : "MsSqlNative";
                dsn.DatabaseServer = (string)keyDsn.GetValue("Server");
                dsn.DatabaseName   = (string)keyDsn.GetValue("Database");
                dsn.DatabaseUser   = (string)keyDsn.GetValue("LastUser");
            }
            else if (driverName.ToLower().StartsWith(MYSQL_DRIVER.ToLower()))
            {
                dsn.Driver           = "MySql";
                dsn.DatabaseServer   = (string)keyDsn.GetValue("SERVER");
                dsn.DatabaseName     = (string)keyDsn.GetValue("DATABASE");
                dsn.DatabaseUser     = (string)keyDsn.GetValue("UID");
                dsn.DatabasePassword = (string)keyDsn.GetValue("PWD");
            }
            else if (driverName.ToLower().StartsWith(MARIADB_DRIVER.ToLower()))
            {
                dsn.Driver           = "MariaDB";
                dsn.DatabaseServer   = (string)keyDsn.GetValue("SERVER");
                dsn.DatabaseName     = (string)keyDsn.GetValue("DATABASE");
                dsn.DatabaseUser     = (string)keyDsn.GetValue("UID");
                dsn.DatabasePassword = (string)keyDsn.GetValue("PWD");
            }
            else if (driverName == MSACCESS_DRIVER)
            {
                dsn.Driver           = "MsAccess";
                dsn.DatabaseName     = (string)keyDsn.GetValue("DBQ");
                dsn.DatabaseUser     = (string)keyDsn.GetValue("UID");
                dsn.DatabasePassword = (string)keyDsn.GetValue("PWD");
            }
            else if (driverName == MSACCESS2010_DRIVER)
            {
                dsn.Driver           = "MsAccess2010";
                dsn.DatabaseName     = (string)keyDsn.GetValue("DBQ");
                dsn.DatabaseUser     = (string)keyDsn.GetValue("UID");
                dsn.DatabasePassword = (string)keyDsn.GetValue("PWD");
            }
            else if (driverName == MSEXCEL_DRIVER)
            {
                dsn.Driver       = "Excel";
                dsn.DatabaseName = (string)keyDsn.GetValue("DBQ");
            }
            else if (driverName == MSEXCEL2010_DRIVER)
            {
                dsn.Driver       = "Excel2010";
                dsn.DatabaseName = (string)keyDsn.GetValue("DBQ");
            }
            else if (driverName == TEXT_DRIVER)
            {
                dsn.Driver       = "Text";
                dsn.DatabaseName = (string)keyDsn.GetValue("DefaultDir");
            }

            return(dsn);
        }