Beispiel #1
0
        private NameValueCollection GetConnectionPropertiesInternal(bool use64Bit)
        {
            var values = new NameValueCollection();

            if (string.IsNullOrEmpty(resDataCtrl.MarkedFile))
            {
                return(values);
            }
            //throw new InvalidOperationException(Properties.Resources.OdbcNoMarkedFile);

            string drv = InferDriver(resDataCtrl.MarkedFile, use64Bit);

            if (drv == null)
            {
                return(values);
            }
            //throw new InvalidOperationException(string.Format(Properties.Resources.OdbcCannotInferDriver, resDataCtrl.MarkedFile));

            var inner = new System.Data.Odbc.OdbcConnectionStringBuilder();

            inner["Driver"]            = drv;              //NOXLATE
            inner["Dbq"]               = StringConstants.MgDataFilePath + resDataCtrl.MarkedFile;
            values["ConnectionString"] = inner.ToString(); //NOXLATE

            return(values);
        }
 /// <summary>
 /// Initialize a new GeoLocationEntities object.
 /// </summary>
 public GeoLocationEntities(string connectionString) :
     base(Util.ConvertNormalCS2EF(connectionString))
 {
     InstanceKey     = Guid.NewGuid();
     _contextStartup = new EFDAL.ContextStartup(null, true);
     ResetContextStartup();
     try
     {
         var builder      = new System.Data.Odbc.OdbcConnectionStringBuilder(Util.StripEFCS2Normal(this.Database.Connection.ConnectionString));
         var timeoutValue = "30";
         if (builder.ContainsKey("connect timeout"))
         {
             timeoutValue = (string)builder["connect timeout"];
         }
         else if (builder.ContainsKey("connection timeout"))
         {
             timeoutValue = (string)builder["connection timeout"];
         }
         var v = Convert.ToInt32(timeoutValue);
         if (v > 0)
         {
             this.CommandTimeout = v;
         }
     }
     catch { }
     this.OnContextCreated();
 }
Beispiel #3
0
        } // End Constructor

        public cAccess(string strConnectionString)
        {
            //this.m_DatabaseConfiguration = dbcDBconfig;
            this.m_dbtDBtype           = DataBaseEngine_t.Access;
            this.m_providerFactory     = this.GetFactory();
            this.m_dictScriptTemplates = GetSQLtemplates();
            this.m_dblDBversion        = 0.0;
            this.m_ConnectionString    = new System.Data.Odbc.OdbcConnectionStringBuilder();
        } // End Constructor 2
        private string GetDbInfo()
        {
            var    csBuilder = new System.Data.Odbc.OdbcConnectionStringBuilder(ConfigurationManager.ConnectionStrings["RockContext"].ConnectionString);
            object dataSource, catalog = string.Empty;

            if (csBuilder.TryGetValue("data source", out dataSource) && csBuilder.TryGetValue("initial catalog", out catalog))
            {
                return(string.Format("{0} @ {1}", catalog, dataSource));
            }
            return(string.Empty);
        }
 /*Al caricamento della pagina il programma preleva tutti le impostazioni modificabili dal file Web.config e le
  * mette nei relativi campi, salva inoltre una copia delle impostazioni di collegamento dal database in delle
  * variabili per poter verificare in fase di salvataggio se l'utente ha apportato modifiche o meno aggiornando
  * eventualmente i dati presenti nel file e riavviando l'applicazione per rendere effettive le modifiche.*/
 protected void Page_Load(object sender, EventArgs e)
 {
     config  = WebConfigurationManager.OpenWebConfiguration("~");
     section = config.GetSection("connectionStrings") as ConnectionStringsSection;
     System.Data.Odbc.OdbcConnectionStringBuilder builder = new System.Data.Odbc.OdbcConnectionStringBuilder();
     builder.ConnectionString = section.ConnectionStrings["Test1"].ConnectionString;
     if (!IsPostBack)
     {
         ns.Text       = WebConfigurationManager.AppSettings["Titolo"];
         TextBox2.Text = builder["Data Source"].ToString();
         TextBox3.Text = builder["Initial Catalog"].ToString();
         TextBox4.Text = builder["User ID"].ToString();
         TextBox5.Text = builder["Password"].ToString();
     }
 }
Beispiel #6
0
        /// <summary>
        /// Set the database connection string.
        /// </summary>
        /// <param name="connectionString"></param>
        public void SetConnectionString(string connectionString)
        {
            if (string.IsNullOrWhiteSpace(connectionString))
            {
                this.ConnectionString = null;
            }
            else
            {
                // Parse the connection string and store the server name and database name.
                var csBuilder = new System.Data.Odbc.OdbcConnectionStringBuilder(connectionString);

                object serverName;
                object databaseName;
                bool   isValid;

                isValid = csBuilder.TryGetValue("server", out serverName);

                if (!isValid)
                {
                    csBuilder.TryGetValue("data source", out serverName);
                }

                isValid = csBuilder.TryGetValue("database", out databaseName);

                if (!isValid)
                {
                    csBuilder.TryGetValue("initial catalog", out databaseName);
                }

                _serverName   = serverName.ToStringSafe();
                _databaseName = databaseName.ToStringSafe();

                this.ConnectionString = connectionString;
            }

            // Reset all cached properties.
            _platform             = PlatformSpecifier.Unknown;
            _versionInfoRetrieved = false;
            _versionNumber        = null;
            _version                       = null;
            _versionFriendlyName           = null;
            _databaseServerOperatingSystem = null;
            _snapshotIsolationAllowed      = null;
            _readCommittedSnapshotEnabled  = null;
            _edition                       = null;
            _recoverMode                   = null;
        }
Beispiel #7
0
        public string GetConnectionString()
        {
            if (!string.IsNullOrEmpty(DatabaseServer) && !string.IsNullOrEmpty(DatabaseName))
            {
                var connectionStringBuilder = new SqlConnectionStringBuilder();
                connectionStringBuilder.DataSource     = DatabaseServer;
                connectionStringBuilder.InitialCatalog = DatabaseName;
                if (string.IsNullOrEmpty(DatabaseUser))
                {
                    connectionStringBuilder.IntegratedSecurity = true;
                }
                else
                {
                    connectionStringBuilder.IntegratedSecurity = false;
                    connectionStringBuilder.UserID             = DatabaseUser;
                    connectionStringBuilder.Password           = DatabasePassword;
                }
                connectionStringBuilder.ConnectTimeout = 5;
                return(connectionStringBuilder.ToString());
            }

            if (DSN != null)
            {
                var connectionStringBuilder     = new SqlConnectionStringBuilder();
                var odbcConnectionStringBuilder = new System.Data.Odbc.OdbcConnectionStringBuilder("DSN=" + DSN);
                connectionStringBuilder.AsynchronousProcessing   = true;
                connectionStringBuilder.ConnectTimeout           = 5;
                connectionStringBuilder.DataSource               = (string)odbcConnectionStringBuilder["Server"];
                connectionStringBuilder.InitialCatalog           = (string)odbcConnectionStringBuilder["Database"];
                connectionStringBuilder.MultipleActiveResultSets = true;
                connectionStringBuilder.ApplicationName          = System.Reflection.Assembly.GetEntryAssembly().GetName().Name;
                connectionStringBuilder.IntegratedSecurity       = true;
                return(connectionStringBuilder.ToString());
            }

            if (ConnectionStrings != null && !(string.IsNullOrEmpty(ConnectionName)))
            {
                var connectionStringSetting = ConnectionStrings.SingleOrDefault(x => x.Name == ConnectionName);
                if (connectionStringSetting == null)
                {
                    throw new ArgumentException(string.Format("Cannot find a connection string named \"{0}\"", ConnectionName), "ConnectionName");
                }
                return(connectionStringSetting.ConnectionString);
            }

            return(null);
        }
Beispiel #8
0
        /* Azure SQL Test Settings
         * private const string _TestSettingServerName = "tcp:oneheartbali.database.windows.net";
         * private const string _TestSettingDatabaseName = "rock_live";
         * private const string _TestSettingsDatabaseVersion = "12.0.2000.8";
         * private const string _TestSettingsDatabaseVersionFriendlyName = "SQL Server 2014";
         * private const string _TestSettingsDatabaseHostPlatform = "Azure";
         * private const string _TestSettingsDatabaseEdition = "Standard";
         * private const string _TestSettingsDatabaseRecoveryMode = "FULL";
         * private const string _TestSettingsServiceObjective = "S0";
         * private const bool _TestSettingReadCommittedSnapshotEnabled = true;
         * private const bool _TestSettingSnapshotIsolationAllowed = true;
         * private const RockInstanceDatabaseConfiguration.PlatformSpecifier _TestSettingPlatform = RockInstanceDatabaseConfiguration.PlatformSpecifier.AzureSql;
         */

        protected override void OnValidateTestData(out bool isValid, out string stateMessage)
        {
            try
            {
                // Verify that we are connected to the expected test database.
                var dataContext = GetNewDataContext();

                var connectionString = dataContext.Database.Connection.ConnectionString;

                var csBuilder = new System.Data.Odbc.OdbcConnectionStringBuilder(connectionString);

                object value;
                bool   hasValue;

                hasValue = csBuilder.TryGetValue("server", out value);

                if (!hasValue)
                {
                    hasValue = csBuilder.TryGetValue("data source", out value);
                }

                var serverName = value.ToStringSafe();

                if (!serverName.Equals(_TestSettingServerName, StringComparison.OrdinalIgnoreCase))
                {
                    throw new Exception($"Test database is invalid. Server Name \"{serverName}\" does not match test configuration settings.");
                }

                csBuilder.TryGetValue("initial catalog", out value);

                var databaseName = value.ToStringSafe();

                if (!databaseName.Equals(_TestSettingDatabaseName, StringComparison.OrdinalIgnoreCase))
                {
                    throw new Exception($"Test database is invalid. Database Name \"{databaseName}\" does not match test configuration settings.");
                }

                isValid      = true;
                stateMessage = null;
            }
            catch (Exception ex)
            {
                isValid      = false;
                stateMessage = ex.Message;
            }
        }
        /*Questa funzione salva le impostazioni aggiornate.*/
        protected void Button1_Click(object sender, EventArgs e)
        {
            System.Data.Odbc.OdbcConnectionStringBuilder builder = new System.Data.Odbc.OdbcConnectionStringBuilder();
            builder.ConnectionString = section.ConnectionStrings["Test1"].ConnectionString;
            //Se è stata inserita una nuova password e la conferma è corretta la password nel database viene aggiornata.
            if (TextBox1.Text != "" && TextBox1.Text == TextBox6.Text)
            {
                Auth.rePass(TextBox1.Text);
                Label2.Text = "La password è stata modificata con successo";
            }
            //Se le impostazioni del database stato cambiate il programma le testa e in caso di esito positivo aggiorna il file e riavvia l'applicazione
            if (TextBox2.Text != builder["Data Source"].ToString() || TextBox3.Text != builder["Initial Catalog"].ToString() || TextBox4.Text != builder["User ID"].ToString() || TextBox5.Text != builder["Password"].ToString())
            {
                if (DBTest.stringTest("Data Source=" + TextBox3.Text + ";Initial Catalog=" + TextBox4.Text + ";Persist Security Info=True;User ID=" + TextBox5.Text + ";Password="******"Test1"].ConnectionString = "Data Source=" + TextBox3.Text + ";Initial Catalog=" + TextBox4.Text + ";Persist Security Info=True;User ID=" + TextBox5.Text + ";Password="******"Connessione al database fallita, verranno ripristinate le impostazioni precedenti";
                }
            }
            //Se il titolo dell'installazione dell'applicazione è stato cambiato aggiorna il file e riavvia l'applicazione
            if (WebConfigurationManager.AppSettings["Titolo"] != ns.Text)
            {
                Configuration      objConfig      = System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration("~");
                AppSettingsSection objAppsettings = (AppSettingsSection)objConfig.GetSection("appSettings");

                if (objAppsettings != null)
                {
                    objAppsettings.Settings["Titolo"].Value = ns.Text;
                    objConfig.Save();
                    reboot = true;
                }
            }
            if (reboot)
            {
                HttpRuntime.UnloadAppDomain();
                Response.Redirect(Request.RawUrl);
            }
        }
Beispiel #10
0
        /// <summary>
        /// Combines the Rock semantic version number and the database name into a comma separated string
        /// </summary>
        /// <returns>A comma separated string of the Rock Semantic Version Number and the database name</returns>
        public string CreateTags()
        {
            string tags = string.Empty;

            // Get Rock Version
            var version = new Version(Rock.VersionInfo.VersionInfo.GetRockSemanticVersionNumber());

            tags += version.ToString();

            // Get database name
            var    builder = new System.Data.Odbc.OdbcConnectionStringBuilder(ConfigurationManager.ConnectionStrings["RockContext"].ConnectionString);
            object catalog;

            if (builder.TryGetValue("initial catalog", out catalog))
            {
                tags += "," + catalog;
            }

            return(tags);
        }
Beispiel #11
0
        public override DbConnection GetConnection()
        {
            // Look up configuration
            var cs = ConfigurationManager.ConnectionStrings[FileOrName];

            if (cs != null)
            {
                return(new ProviderConnectionSetting(cs.ProviderName, cs.ConnectionString).GetConnection());
            }

            // Access file?
            if (FileOrName.EndsWith(".accdb") || FileOrName.EndsWith(".mdb"))
            {
                var builder = new System.Data.Odbc.OdbcConnectionStringBuilder();
                builder.Add("Driver", "{Microsoft Access Driver (*.mdb, *.accdb)}");
                builder.Add("Dbq", FileOrName);

                var conn = new System.Data.Odbc.OdbcConnection();
                conn.ConnectionString = builder.ConnectionString;
                conn.Open();

                return(conn);
            }

            // Assume a SQLite file
            // Restricts to an exsiting file to prevent mistyping from creating a new database
            if (File.Exists(FileOrName))
            {
                var builder = new System.Data.SQLite.SQLiteConnectionStringBuilder();
                builder.Add("Data Source", FileOrName);

                var conn = new System.Data.SQLite.SQLiteConnection();
                conn.ConnectionString = builder.ConnectionString;
                conn.Open();

                return(conn);
            }

            throw new RuntimeException(String.Format("'{0}' is not a database file name nor connection string name", FileOrName));
        }
Beispiel #12
0
        private string GetDbInfo()
        {
            StringBuilder databaseResults = new StringBuilder();

            var csBuilder = new System.Data.Odbc.OdbcConnectionStringBuilder( ConfigurationManager.ConnectionStrings["RockContext"].ConnectionString );
            object dataSource, catalog = string.Empty;
            if ( csBuilder.TryGetValue( "data source", out dataSource ) && csBuilder.TryGetValue( "initial catalog", out catalog ) )
            {
                _catalog = catalog.ToString();
                databaseResults.Append( string.Format( "Name: {0} <br /> Server: {1}", catalog, dataSource ) );
            }

            try
            {
                // get database version
                var reader = DbService.GetDataReader( "SELECT SERVERPROPERTY('productversion'), @@Version ", System.Data.CommandType.Text, null );
                if ( reader != null )
                {
                    string version = "";
                    string versionInfo = "";

                    while ( reader.Read() )
                    {
                        version = reader[0].ToString();
                        versionInfo = reader[1].ToString();
                    }

                    databaseResults.Append( string.Format( "<br />Database Version: {0}", versionInfo ) );
                }

                try
                {
                    // get database size
                    reader = DbService.GetDataReader( "sp_helpdb " + catalog, System.Data.CommandType.Text, null );
                    if ( reader != null )
                    {
                        // get second data table
                        reader.NextResult();
                        reader.Read();

                        string size = reader.GetValue( 5 ).ToString();
                        if ( size != "Unlimited" )
                        {
                            if ( size.Contains( "KB" ) )
                            {
                                size = size.Replace( " KB", "" );
                                int sizeInKB = Int32.Parse( size );

                                int sizeInMB = sizeInKB / 1024;

                                databaseResults.AppendFormat( "<br />Database Size: {0}", sizeInMB );
                            }
                        }
                        else
                        {
                            databaseResults.Append( "<br />Database Size: Unlimited" );
                        }
                    }
                }
                catch
                {
                    databaseResults.AppendFormat( "<br />Database Size: unable to determine" );
                }

                try
                {
                    // get database snapshot isolation details
                    reader = DbService.GetDataReader( string.Format( "SELECT [snapshot_isolation_state], [is_read_committed_snapshot_on] FROM sys.databases WHERE [name] = '{0}'", _catalog ), System.Data.CommandType.Text, null );
                    if ( reader != null )
                    {
                        bool isAllowSnapshotIsolation = false;
                        bool isReadCommittedSnapshopOn = true;

                        while ( reader.Read() )
                        {
                            isAllowSnapshotIsolation = reader[0].ToStringSafe().AsBoolean();
                            isReadCommittedSnapshopOn = reader[1].ToString().AsBoolean();
                        }

                        databaseResults.AppendFormat( "<br />Allow Snapshot Isolation: {0}<br />Is Read Committed Snapshot On: {1}<br />", isAllowSnapshotIsolation.ToYesNo(), isReadCommittedSnapshopOn.ToYesNo() );
                    }
                }
                catch { }
            }
            catch ( Exception ex )
            {
                databaseResults.AppendFormat( "Unable to read database system information: {0}", ex.Message );
            }

            return databaseResults.ToString();
        }
Beispiel #13
0
        public new static void Tests()
        {
            System.Data.Common.DbConnectionStringBuilder dbcsb = new System.Data.Common.DbConnectionStringBuilder();


            System.Data.SqlClient.SqlConnectionStringBuilder sqlcsb =
                new System.Data.SqlClient.SqlConnectionStringBuilder();

            sqlcsb.NetworkLibrary = "";
            //sqlcsb.TransactionBinding
            sqlcsb.TypeSystemVersion = "";
            sqlcsb.UserInstance      = true;



            Npgsql.NpgsqlConnectionStringBuilder csb =
                new Npgsql.NpgsqlConnectionStringBuilder();

            // csb.Protocol
            // csb.Compatible
            //csb.SslMode = Npgsql.SslMode.Require;
            // csb.UseExtendedTypes

            System.Data.OracleClient.OracleConnectionStringBuilder ocb = new System.Data.OracleClient.OracleConnectionStringBuilder();

            FirebirdSql.Data.FirebirdClient.FbConnectionStringBuilder fbcsb = new FirebirdSql.Data.FirebirdClient.FbConnectionStringBuilder();
            fbcsb.ServerType = FirebirdSql.Data.FirebirdClient.FbServerType.Embedded;


            Mono.Data.Sqlite.SqliteConnectionStringBuilder litecsb = new Mono.Data.Sqlite.SqliteConnectionStringBuilder();
            litecsb.BinaryGUID            = true;
            litecsb.DateTimeFormat        = Mono.Data.Sqlite.SQLiteDateFormats.ISO8601;
            litecsb.DefaultIsolationLevel = System.Data.IsolationLevel.ReadCommitted;
            litecsb.DefaultTimeout        = 123;
            litecsb.FailIfMissing         = true;
            litecsb.JournalMode           = Mono.Data.Sqlite.SQLiteJournalModeEnum.Off;
            litecsb.LegacyFormat          = false;
            litecsb.SyncMode = Mono.Data.Sqlite.SynchronizationModes.Full;
            litecsb.Uri      = "";

            litecsb.Version = 123;



            MySql.Data.MySqlClient.MySqlConnectionStringBuilder mycb = new MySql.Data.MySqlClient.MySqlConnectionStringBuilder();
            mycb.AllowBatch               = true;
            mycb.CertificateFile          = "";
            mycb.CertificatePassword      = "";
            mycb.CertificateStoreLocation = MySql.Data.MySqlClient.MySqlCertificateStoreLocation.LocalMachine;
            mycb.CertificateThumbprint    = "";
            mycb.CharacterSet             = "";
            mycb.CheckParameters          = true;
            mycb.ConnectionLifeTime       = 123;
            mycb.ConnectionProtocol       = MySql.Data.MySqlClient.MySqlConnectionProtocol.Tcp;
            mycb.ConnectionReset          = true;
            mycb.ConvertZeroDateTime      = false;
            mycb.DefaultCommandTimeout    = 123;
            mycb.FunctionsReturnString    = true;
            mycb.IgnorePrepare            = true;
            mycb.InteractiveSession       = false;
            mycb.Keepalive = 123;
            mycb.PipeName  = "";


            System.Data.Odbc.OdbcConnectionStringBuilder odbc = new System.Data.Odbc.OdbcConnectionStringBuilder();
            //System.Data.OleDb.OleDbConnectionStringBuilder oledb = new System.Data.OleDb.OleDbConnectionStringBuilder();
        } // End Sub
        //dBase functions
        //Use Intersolv ODBC Driver v3.10
        private static void SaveDBF(DataTable DT, byte saveType)
        {
            StringBuilder shortPath = new StringBuilder(300);
            Com_WinApi.GetShortPathName(driver.Config.ConfigManager.Instance.CommonConfiguration.Path_Cheques, shortPath, shortPath.Capacity);

            //Check
            if (File.Exists(driver.Config.ConfigManager.Instance.CommonConfiguration.Path_Cheques + "\\" + DT.TableName + ".DBF"))
                File.Delete(driver.Config.ConfigManager.Instance.CommonConfiguration.Path_Cheques + "\\" + DT.TableName + ".DBF");

            //Creating connection
            System.Data.Odbc.OdbcConnectionStringBuilder c_string = new System.Data.Odbc.OdbcConnectionStringBuilder();
            c_string.Driver = "VODBFODBC";
            c_string.Dsn = "VODBF";
            c_string.Add("DB", shortPath.ToString());
            c_string.Add("ULN", 1);
            c_string.Add("MS", 1);
            System.Data.Odbc.OdbcConnection odbc_connection = new System.Data.Odbc.OdbcConnection(c_string.ConnectionString);
            try
            {
                odbc_connection.Open();
            }
            catch { }
            System.Data.Odbc.OdbcCommand odbc_command = odbc_connection.CreateCommand();

            //Creating Table
            odbc_command.CommandText = "CREATE TABLE " + DT.TableName + " (ID char(10), AP numeric(11, 5), VQ numeric(11, 3), DR numeric(8, 2))";
            try
            {
                odbc_command.ExecuteNonQuery();
            }
            catch { }

            //Adding data
            string[] cols = new string[] { "PRICE", "PACK" };
            if (saveType != 0)
                Array.Reverse(cols);

            for (int i = 0; i < DT.Rows.Count; i++)
            {
                odbc_command.CommandText = "INSERT INTO " + DT.TableName + " (ID,AP,VQ,DR) values (";
                odbc_command.CommandText += "\'" + DT.Rows[i]["ID"] + "\'";
                odbc_command.CommandText += ",";
                odbc_command.CommandText += MathLib.ReplaceNDS(DT.Rows[i][cols[0]].ToString(), ".");
                odbc_command.CommandText += ",";
                odbc_command.CommandText += MathLib.ReplaceNDS(DT.Rows[i]["TOT"].ToString(), ".");
                odbc_command.CommandText += ",";
                odbc_command.CommandText += MathLib.ReplaceNDS(DT.Rows[i][cols[1]].ToString(), ".");
                odbc_command.CommandText += ");";

                try
                {
                    odbc_command.ExecuteNonQuery();
                }
                catch { }
            }

            odbc_connection.Close();

            //string shortPath = "C:\\" + DT.TableName + ".dbf";
            //mktChequeRow[] rows = new mktChequeRow[DT.Rows.Count + 5];
            //for (int i = 0; i < DT.Rows.Count + 5; i++)
            //{
            //    rows[i].sz = DT.Rows[1]["ID"].ToString().ToCharArray();
            //    rows[i].r1 = (double)DT.Rows[1]["PRICE"];
            //    rows[i].r2 = (double)DT.Rows[1]["TOT"];
            //    rows[i].r3 = (double)DT.Rows[1]["PACK"];
            //}
            //UInt32 r = MakeCheque((UInt32)DT.Rows.Count + 5, rows, shortPath);
        }
Beispiel #15
0
        private NameValueCollection GetConnectionPropertiesInternal(bool use64Bit)
        {
            var values = new NameValueCollection();
            string path = txtFilePath.Text;
            if (string.IsNullOrEmpty(path))
                return values;
            //throw new InvalidOperationException(Properties.Resources.OdbcNoMarkedFile);

            string drv = InferDriver(path, use64Bit);
            if (drv == null)
                return values;
            //throw new InvalidOperationException(string.Format(Properties.Resources.OdbcCannotInferDriver, path));

            var inner = new System.Data.Odbc.OdbcConnectionStringBuilder();
            inner["Driver"] = drv; //NOXLATE
            inner["Dbq"] = path; //NOXLATE
            values["ConnectionString"] = inner.ToString(); //NOXLATE

            return values;
        }
        private string GetDbInfo()
        {
            StringBuilder databaseResults = new StringBuilder();

            var    csBuilder = new System.Data.Odbc.OdbcConnectionStringBuilder(ConfigurationManager.ConnectionStrings["RockContext"].ConnectionString);
            object dataSource, catalog = string.Empty;

            if (csBuilder.TryGetValue("data source", out dataSource) && csBuilder.TryGetValue("initial catalog", out catalog))
            {
                databaseResults.Append(string.Format("Name: {0} <br /> Server: {1}", catalog, dataSource));
            }

            try
            {
                // get database version
                var reader = DbService.GetDataReader("SELECT SERVERPROPERTY('productversion'), @@Version ", System.Data.CommandType.Text, null);
                if (reader != null)
                {
                    string version     = "";
                    string versionInfo = "";

                    while (reader.Read())
                    {
                        version     = reader[0].ToString();
                        versionInfo = reader[1].ToString();
                    }

                    databaseResults.Append(string.Format("<br />Database Version: {0}", versionInfo));
                }

                // get database size
                reader = DbService.GetDataReader("sp_helpdb " + catalog, System.Data.CommandType.Text, null);
                if (reader != null)
                {
                    // get second data table
                    reader.NextResult();
                    reader.Read();

                    string size = reader.GetValue(5).ToString();
                    if (size != "Unlimited")
                    {
                        if (size.Contains("KB"))
                        {
                            size = size.Replace(" KB", "");
                            int sizeInKB = Int32.Parse(size);

                            int sizeInMB = sizeInKB / 1024;

                            databaseResults.Append(string.Format("<br />Database Size: {0}", sizeInMB));
                        }
                    }
                    else
                    {
                        databaseResults.Append("<br />Database Size: Unlimited");
                    }
                }
            }
            catch {}

            return(databaseResults.ToString());
        }
Beispiel #17
0
        private string GetDbInfo()
        {
            StringBuilder databaseResults = new StringBuilder();

            var    csBuilder = new System.Data.Odbc.OdbcConnectionStringBuilder(ConfigurationManager.ConnectionStrings["RockContext"].ConnectionString);
            object dataSource, catalog = string.Empty;

            if (csBuilder.TryGetValue("data source", out dataSource) && csBuilder.TryGetValue("initial catalog", out catalog))
            {
                _catalog = catalog.ToString();
                databaseResults.Append(string.Format("Name: {0} <br /> Server: {1}", catalog, dataSource));
            }

            try
            {
                // get database version
                var reader = DbService.GetDataReader("SELECT SERVERPROPERTY('productversion'), @@Version ", System.Data.CommandType.Text, null);
                if (reader != null)
                {
                    string version     = "";
                    string versionInfo = "";

                    while (reader.Read())
                    {
                        version     = reader[0].ToString();
                        versionInfo = reader[1].ToString();
                    }

                    databaseResults.Append(string.Format("<br />Database Version: {0}", versionInfo));
                }

                try
                {
                    // get database size
                    reader = DbService.GetDataReader("sp_helpdb " + catalog, System.Data.CommandType.Text, null);
                    if (reader != null)
                    {
                        // get second data table
                        reader.NextResult();
                        reader.Read();

                        string size = reader.GetValue(5).ToString();
                        if (size != "Unlimited")
                        {
                            if (size.Contains("KB"))
                            {
                                size = size.Replace(" KB", "");
                                int sizeInKB = Int32.Parse(size);

                                int sizeInMB = sizeInKB / 1024;

                                databaseResults.AppendFormat("<br />Database Size: {0}", sizeInMB);
                            }
                        }
                        else
                        {
                            databaseResults.Append("<br />Database Size: Unlimited");
                        }
                    }
                }
                catch
                {
                    databaseResults.AppendFormat("<br />Database Size: unable to determine");
                }

                try
                {
                    // get database snapshot isolation details
                    reader = DbService.GetDataReader(string.Format("SELECT [snapshot_isolation_state], [is_read_committed_snapshot_on] FROM sys.databases WHERE [name] = '{0}'", _catalog), System.Data.CommandType.Text, null);
                    if (reader != null)
                    {
                        bool isAllowSnapshotIsolation  = false;
                        bool isReadCommittedSnapshopOn = true;

                        while (reader.Read())
                        {
                            isAllowSnapshotIsolation  = reader[0].ToStringSafe().AsBoolean();
                            isReadCommittedSnapshopOn = reader[1].ToString().AsBoolean();
                        }

                        databaseResults.AppendFormat("<br />Allow Snapshot Isolation: {0}<br />Is Read Committed Snapshot On: {1}<br />", isAllowSnapshotIsolation.ToYesNo(), isReadCommittedSnapshopOn.ToYesNo());
                    }
                }
                catch { }
            }
            catch (Exception ex)
            {
                databaseResults.AppendFormat("Unable to read database system information: {0}", ex.Message);
            }

            return(databaseResults.ToString());
        }
 private string GetDbInfo()
 {
     var csBuilder = new System.Data.Odbc.OdbcConnectionStringBuilder( ConfigurationManager.ConnectionStrings["RockContext"].ConnectionString );
     object dataSource, catalog = string.Empty;
     if ( csBuilder.TryGetValue( "data source", out dataSource ) && csBuilder.TryGetValue( "initial catalog", out catalog ) )
     {
         return string.Format( "{0} @ {1}", catalog, dataSource );
     }
     return string.Empty;
 }