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(); }
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(); }
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(); }
public virtual void UpdateDSN(SystemDSN dsn) { // delete DSN DeleteDSN(dsn.Name); // create again CreateDSN(dsn); }
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(); }
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(); }
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; } }
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); }