Beispiel #1
0
        public long SaveServer(AppDBServerLink server)
        {
            MySqlCommand qry;

            if (server.id > 0)
            {
                // update
                qry = new MySqlCommand("update connection set type=?type, name=?name, host=?host, port=?port, username=?username, password=?password, databasename=?databasename, extraparams=?extraparams where id=?id", db);
                qry.Parameters.AddWithValue("?id", server.id);
            }
            else
            {
                // insert
                qry = new MySqlCommand("insert into connection ( type, name, host, port, username, password, databasename, extraparams) values (?type,?name,?host,?port,?username,?password,?databasename,?extraparams); select last_insert_id();", db);
            }

            qry.Parameters.AddWithValue("?type", server.type);
            qry.Parameters.AddWithValue("?name", server.name);
            qry.Parameters.AddWithValue("?host", server.host);
            qry.Parameters.AddWithValue("?port", server.port);
            qry.Parameters.AddWithValue("?username", server.username);
            qry.Parameters.AddWithValue("?password", server.password);
            qry.Parameters.AddWithValue("?databasename", server.databasename);
            qry.Parameters.AddWithValue("?extraparams", server.extraparams);

            qry.ExecuteNonQuery();

            // get inserted id and assign to in server.id
            if (server.id <= 0)
            {
                server.id = qry.LastInsertedId;
            }

            return(server.id);
        }
Beispiel #2
0
        /// <summary>
        /// Open a new tab for the selected server, if we can connect to the server.
        /// </summary>
        /// <param name="connection_id">id</param>
        /// <param name="title">connection name to put in the tab header, should probably be accompanied by the id?</param>
        private void ConnectToServer(AppDBServerLink connection)
        {
            try
            {
                var tabcontent = new ConnectionTabControl();

                tabcontent.Height = double.NaN;
                tabcontent.Width  = double.NaN;

                tabcontent.Margin = new Thickness(0, 0, 0, 0);
                tabcontent.HorizontalAlignment = HorizontalAlignment.Stretch;
                tabcontent.VerticalAlignment   = VerticalAlignment.Stretch;

                // setup the datasource to provide querynames
                tabcontent.Initialize(appDB, connection.id);

                // this also connects to the database and will throw an exception when we can't connect
                tabcontent.SetDatabaseConnection((AppDBServerType)connection.type, connection.GetConnectionString());

                // create a new tab with usercontrol instance and stretch align that to the tab
                var tab = new TabItem();

                var header = new CloseableTabHeader(connection.name);
                header.OnClose = () =>
                {
                    // implementation when x button is used on tab
                    pgTabs.Items.Remove(tab);
                    QueryComposerResources.UnsetComposerHelper(tabcontent.DBConnection);
                };
                tab.Header  = header;
                tab.Content = tabcontent;

                pgTabs.Items.Add(tab);
                pgTabs.SelectedIndex = pgTabs.Items.IndexOf(tab);

                // if updatelayout() isn't used, recalculatesize() won't work
                pgTabs.UpdateLayout();
                header.RecalculateSize();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Connecting", MessageBoxButton.OK, MessageBoxImage.Warning);
            }
        }
Beispiel #3
0
        public void DelServer(AppDBServerLink server)
        {
            SQLiteCommand qry;

            if (server.id > 0)
            {
                qry = new SQLiteCommand("delete from connection where id=@id", db);
                qry.Parameters.AddWithValue("@id", server.id);

                qry.ExecuteNonQuery();

                server.id = 0;
            }
            else
            {
                // if this server isn't an entry in the database, that's ok with me
                // throw new Exception("");
            }
        }
Beispiel #4
0
        public void DelServer(AppDBServerLink server)
        {
            SQLiteCommand qry;

            if (server.id > 0)
            {
                qry = new SQLiteCommand("delete from connection where id=@id", db);
                qry.Parameters.AddWithValue("@id", server.id);

                qry.ExecuteNonQuery();

                server.id = 0;
            }
            else
            {
                // if this server isn't an entry in the database, that's ok with me
                // throw new Exception("");
            }
        }
Beispiel #5
0
        private void lstConnections_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            if (lstConnections.SelectedIndex >= 0)
            {
                // determine selected connection
                var connection = new AppDBServerLink(lstConnections.SelectedItem);

                // todo: handle connection errors before opening new tab

                // connect to the right server
                Cursor = Cursors.Wait;
                try
                {
                    ConnectToServer(connection);
                }
                finally
                {
                    Cursor = Cursors.Arrow;
                }
            }
        }
Beispiel #6
0
        public long SaveServer(AppDBServerLink server)
        {
            SQLiteCommand qry;

            if (server.id > 0)
            {
                // update
                qry = new SQLiteCommand("update connection set type=@type, name=@name, host=@host, port=@port, username=@username, password=@password, databasename=@databasename, extraparams=@extraparams where id=@id", db);
                qry.Parameters.AddWithValue("@id", server.id);
            }
            else
            {
                // insert
                qry = new SQLiteCommand("insert into connection ( type, name, host, port, username, password, databasename, extraparams) values (@type,@name,@host,@port,@username,@password,@databasename,@extraparams);", db);
            }

            qry.Parameters.AddWithValue("@type", server.type);
            qry.Parameters.AddWithValue("@name", server.name);
            qry.Parameters.AddWithValue("@host", server.host);
            qry.Parameters.AddWithValue("@port", server.port);
            qry.Parameters.AddWithValue("@username", server.username);
            qry.Parameters.AddWithValue("@password", server.password);
            qry.Parameters.AddWithValue("@databasename", server.databasename);
            qry.Parameters.AddWithValue("@extraparams", server.extraparams);

            qry.ExecuteNonQuery();

            // get inserted id and assign to in server.id
            if (server.id <= 0)
            {
                qry.CommandText = "select last_insert_rowid()";
                server.id       = (long)qry.ExecuteScalar();
            }

            return(server.id);
        }
Beispiel #7
0
        public long SaveServer(AppDBServerLink server)
        {
            SQLiteCommand qry;

            if (server.id > 0)
            {
                // update
                qry = new SQLiteCommand("update connection set type=@type, name=@name, host=@host, port=@port, username=@username, password=@password, databasename=@databasename, extraparams=@extraparams where id=@id", db);
                qry.Parameters.AddWithValue("@id", server.id);
            }
            else
            {
                // insert
                qry = new SQLiteCommand("insert into connection ( type, name, host, port, username, password, databasename, extraparams) values (@type,@name,@host,@port,@username,@password,@databasename,@extraparams);", db);
            }

            qry.Parameters.AddWithValue("@type", server.type);
            qry.Parameters.AddWithValue("@name", server.name);
            qry.Parameters.AddWithValue("@host", server.host);
            qry.Parameters.AddWithValue("@port", server.port);
            qry.Parameters.AddWithValue("@username", server.username);
            qry.Parameters.AddWithValue("@password", server.password);
            qry.Parameters.AddWithValue("@databasename", server.databasename);
            qry.Parameters.AddWithValue("@extraparams", server.extraparams);

            qry.ExecuteNonQuery();

            // get inserted id and assign to in server.id
            if (server.id <= 0)
            {
                qry.CommandText = "select last_insert_rowid()";
                server.id = (long)qry.ExecuteScalar();
            }

            return server.id;
        }
Beispiel #8
0
        public long SaveServer(AppDBServerLink server)
        {
            MySqlCommand qry;

            if (server.id > 0)
            {
                // update
                qry = new MySqlCommand("update connection set type=?type, name=?name, host=?host, port=?port, username=?username, password=?password, databasename=?databasename, extraparams=?extraparams where id=?id", db);
                qry.Parameters.AddWithValue("?id", server.id);
            }
            else
            {
                // insert
                qry = new MySqlCommand("insert into connection ( type, name, host, port, username, password, databasename, extraparams) values (?type,?name,?host,?port,?username,?password,?databasename,?extraparams); select last_insert_id();", db);
            }

            qry.Parameters.AddWithValue("?type", server.type);
            qry.Parameters.AddWithValue("?name", server.name);
            qry.Parameters.AddWithValue("?host", server.host);
            qry.Parameters.AddWithValue("?port", server.port);
            qry.Parameters.AddWithValue("?username", server.username);
            qry.Parameters.AddWithValue("?password", server.password);
            qry.Parameters.AddWithValue("?databasename", server.databasename);
            qry.Parameters.AddWithValue("?extraparams", server.extraparams);

            qry.ExecuteNonQuery();

            // get inserted id and assign to in server.id
            if (server.id <= 0)
            {
                server.id = qry.LastInsertedId;
            }

            return server.id;
        }
        private void lstConnections_MouseDoubleClick(object sender, MouseButtonEventArgs e)
        {
            if (lstConnections.SelectedIndex >= 0)
            {
                // determine selected connection
                var connection = new AppDBServerLink(lstConnections.SelectedItem);

                // todo: handle connection errors before opening new tab

                // connect to the right server
                Cursor = Cursors.Wait;
                try
                {
                    ConnectToServer(connection);
                }
                finally
                {
                    Cursor = Cursors.Arrow;
                }
            }
        }
        /// <summary>
        /// Open a new tab for the selected server, if we can connect to the server.
        /// </summary>
        /// <param name="connection_id">id</param>
        /// <param name="title">connection name to put in the tab header, should probably be accompanied by the id?</param>
        private void ConnectToServer(AppDBServerLink connection)
        {
            try
            {
                var tabcontent = new ConnectionTabControl();

                tabcontent.Height = double.NaN;
                tabcontent.Width = double.NaN;

                tabcontent.Margin = new Thickness(0, 0, 0, 0);
                tabcontent.HorizontalAlignment = HorizontalAlignment.Stretch;
                tabcontent.VerticalAlignment = VerticalAlignment.Stretch;

                // setup the datasource to provide querynames
                tabcontent.Initialize(appDB, connection.id);

                // this also connects to the database and will throw an exception when we can't connect
                tabcontent.SetDatabaseConnection((AppDBServerType)connection.type, connection.GetConnectionString());

                // create a new tab with usercontrol instance and stretch align that to the tab
                var tab = new TabItem();

                var header = new CloseableTabHeader(connection.name);
                header.OnClose = () =>
                {
                    // implementation when x button is used on tab
                    pgTabs.Items.Remove(tab);
                    QueryComposerResources.UnsetComposerHelper(tabcontent.DBConnection);
                };
                tab.Header = header;
                tab.Content = tabcontent;

                pgTabs.Items.Add(tab);
                pgTabs.SelectedIndex = pgTabs.Items.IndexOf(tab);

                // if updatelayout() isn't used, recalculatesize() won't work
                pgTabs.UpdateLayout();
                header.RecalculateSize();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Connecting", MessageBoxButton.OK, MessageBoxImage.Warning);
            }
        }