Beispiel #1
0
        private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
        {
            asyncSql bgWorkerObj = (asyncSql)e.Argument;
            Profil   dbProfil    = bgWorkerObj.dbProfil;
            string   sql         = bgWorkerObj.sql;

            MysqlHandler database = new MysqlHandler(dbProfil);

            database.connect();
            if (database.isConnected())
            {
                //database.beginTransaction();
                bgWorkerObj.status = 1;
                //database.query(sql);
                MySql.Data.MySqlClient.MySqlDataReader dbResult;
                if (bgWorkerObj.fireSingleShots)
                {
                    dbResult = null;
                    string[] singleShots = sql.Split(';');
                    for (int i = 0; i < singleShots.Length; i++)
                    {
                        dbResult = database.sql_select(singleShots[i]);
                    }
                }
                else
                {
                    dbResult = database.sql_select(sql);
                }
                bgWorkerObj.result    = dbResult;
                bgWorkerObj.haseRows  = (dbResult != null && dbResult.HasRows == true);
                bgWorkerObj.lastError = database.lastSqlErrorMessage;

/*
 *              if (database.lastSqlErrorMessage != "")
 *              {
 *                  // database.rollBack();
 *              }
 *              else
 *              {
 *                 // database.commit();
 *              }
 */
                bgWorkerObj.status         = 2;
                bgWorkerObj.resultListView = new ListView();
                if (bgWorkerObj.haseRows)
                {
                    database.sql_data2ListView(dbResult, bgWorkerObj.resultListView);
                }

                ThreadList[bgWorkerObj.workerID].ReportProgress(bgWorkerObj.workerID, bgWorkerObj);
            }

            database.disConnect();
        }
Beispiel #2
0
        /// <summary>
        /// gets the creation Query for the given
        /// Stored procedure
        /// </summary>
        /// <param name="proc"></param>
        /// <param name="database"></param>
        private void getCreate(StoredProcedure proc, MysqlHandler database)
        {
            if (database.isConnected())
            {
                MySql.Data.MySqlClient.MySqlDataReader res = database.sql_select(MysqlProcedures.readProcStruct.Replace("[NAME]", proc.name));

                if (res != null)
                {
                    while (res.Read() && res.FieldCount > 0)
                    {
                        string getResult;
                        try
                        {
                            getResult = res.GetString(MysqlProcedures.createCodeIndex);
                        }
                        catch (System.Data.SqlTypes.SqlNullValueException nullEx)
                        {
                            getResult = null;
                        }

                        if (null != getResult)
                        {
                            proc.created = getResult;
                            res.Close();
                        }
                        return;
                    }
                    res.Close();
                }
            }
            else
            {
                throw new Exception("Database must be connected");
            }
        }
Beispiel #3
0
        private void mysql_watcher_DoWork(object sender, DoWorkEventArgs e)
        {
            ListView retObj = (ListView)e.Argument;
            //ListView retObj = new ListView();

            MysqlHandler mysql = new MysqlHandler(watchProfil);

            mysql.connect();

            string sql = "show full processlist";

            MySql.Data.MySqlClient.MySqlDataReader rankings = mysql.sql_select(sql);
            if (retObj != null)
            {
                mysql.sql_data2ListView(rankings, retObj);
            }

            mysql.disConnect();
        }
Beispiel #4
0
        public void getStartupData()
        {
            database = new MysqlHandler(sensorProfil);
            database.connect();

            if (database != null)
            {
                MySql.Data.MySqlClient.MySqlDataReader reader = database.sql_select("SHOW STATUS");

                string name  = "";
                string value = "";
                sensorListing.Items.Clear();
                while (reader != null && reader.Read())
                {
                    //userid = atAll.GetInt64(atAll.GetOrdinal("gladi_userid"));
                    //Data.Add();
                    name  = reader.GetString(0);
                    value = reader.GetString(1);

                    sensorListing.Items.Add(name);
                    addToSensorTree(name);

                    PanelDrawing sensView = new PanelDrawing();
                    sensView.Name         = name;
                    sensView.Width        = flowLayout.Width - 6;
                    sensView.Height       = 120;
                    sensView.BackColor    = Color.FromArgb(0, 33, 0);
                    sensView.BorderStyle  = BorderStyle.Fixed3D;
                    sensView.lineColor    = Color.FromArgb(0, 254, 0);
                    sensView.positivColor = Color.FromArgb(0, 64, 0);
                    sensView.negativColor = Color.FromArgb(54, 0, 0);
                    sensView.Visible      = false;
                    sensView.Dock         = DockStyle.Top;

                    panelSensors.Add(sensView);
                    flowLayout.Controls.Add(panelSensors[panelSensors.Count - 1]);
                }
                if (reader != null)
                {
                    reader.Close();
                }
            }
        }
Beispiel #5
0
        private List <string> getTableExport(MysqlHandler connection, string sourceTable, Int64 start)
        {
            List <string> Data = new List <string>();

            if (connection.isConnected())
            {
                MySql.Data.MySqlClient.MySqlDataReader Reader =
                    connection.sql_select("SELECT * FROM " + sourceTable + " LIMIT " + start + "," + this.copyRowLimit);
                if (Reader != null)
                {
                    while (Reader.Read())
                    {
                        string result = getInsertSql(sourceTable, Reader);
                        if (result != "")
                        {
                            Data.Add(result + ";\n");
                        }
                    }
                }
            }
            return(Data);
        }
Beispiel #6
0
        private void fireSql(Profil dbProfil, string sql)
        {
            MysqlHandler database = new MysqlHandler(dbProfil);

            database.connect();

            if (database.isConnected())
            {
                ListViewWorker listTool  = new ListViewWorker();
                GroupBox       instGroup = new GroupBox();
                instGroup.Width     = MainView.Width - 30;
                instGroup.BackColor = SystemColors.Info;
                //instGroup.Height = 350;
                instGroup.Text     = currentProfileName;
                instGroup.AutoSize = true;

                Label infoData = new Label();
                infoData.AutoSize = true;
                infoData.Text     = dbProfil.getProperty("db_username") + "@" + dbProfil.getProperty("db_host") + "/" + dbProfil.getProperty("db_schema");
                infoData.Top      = 15;
                infoData.Left     = 15;

                ListView resultView = new ListView();
                resultView.View = View.Details;

                resultView.Width  = MainView.Width - 60;
                resultView.Height = 300;
                resultView.Left   = 10;
                resultView.Top    = 30;

                resultView.FullRowSelect = true;

                resultView.GridLines = true;

                MySql.Data.MySqlClient.MySqlDataReader dbResult = database.sql_select(sql);

                if (database.lastSqlErrorMessage != "")
                {
                    Label noData = new Label();
                    noData.Top      = 30;
                    noData.Left     = 15;
                    noData.Text     = database.lastSqlErrorMessage;
                    noData.AutoSize = true;
                    noData.Font     = new Font("Courier New", 10, FontStyle.Bold);
                    instGroup.Controls.Add(noData);
                    instGroup.Controls.Add(infoData);
                    instGroup.Height    = 60;
                    instGroup.BackColor = Color.LightPink;
                }
                else
                {
                    if (dbResult != null && dbResult.HasRows)
                    {
                        database.sql_data2ListView(dbResult, resultView);
                        for (int i = 0; i < resultView.Columns.Count; i++)
                        {
                            resultView.Columns[i].AutoResize(ColumnHeaderAutoResizeStyle.HeaderSize);
                        }
                        listTool.setRowColors(resultView, Color.LightBlue, Color.LightGreen);

                        resultView.Height = (resultView.Items.Count * 13) + 50;
                        if (resultView.Height > 700)
                        {
                            resultView.Height = 700;
                        }

                        listLabelExports.Add(instGroup.Text);
                        listViewExports.Add(resultView);
                        instGroup.Controls.Add(resultView);
                        instGroup.Controls.Add(infoData);
                    }
                    else
                    {
                        Label noData = new Label();
                        noData.Top      = 30;
                        noData.Left     = 15;
                        noData.Text     = "No Result for this query ";
                        noData.AutoSize = true;
                        instGroup.Controls.Add(noData);
                        instGroup.Height    = 60;
                        instGroup.BackColor = Color.LightYellow;
                        instGroup.Controls.Add(infoData);
                    }
                }



                MainView.Controls.Add(instGroup);
                MainView.Refresh();
            }


            database.disConnect();
        }
Beispiel #7
0
        public Int64 copyValues(MysqlHandler connection, string sourceTable, Int64 start, MysqlHandler targetConnection)
        {
            Int64 count               = 0;
            Int64 refresher           = 0;
            List <MysqlStruct> Struct = connection.getAllFieldsStruct(sourceTable);

            string addToField = sourceTable + ".";

            if (showProgress && msg.Visible)
            {
                msg.progressBar.Maximum = (int)this.copyRowLimit + 1;
            }

            if (connection.isConnected())
            {
                MySql.Data.MySqlClient.MySqlDataReader Reader =
                    connection.sql_select("SELECT * FROM " + sourceTable + " LIMIT " + start + "," + this.copyRowLimit);
                if (Reader != null)
                {
                    //if (Reader.RecordsAffected==-1) return 0;

                    while (Reader.Read())
                    {
                        count++;
                        refresher++;
                        string insertSql = "INSERT INTO " + sourceTable + " SET ";
                        string add       = "";
                        for (int i = 0; i < Reader.FieldCount; i++)
                        {
                            if (refresher > 1000)
                            {
                                if (showProgress && msg.Visible)
                                {
                                    msg.msg.Text          = "Copying Table " + sourceTable + " block: " + start + "/" + count;
                                    msg.progressBar.Value = (int)count;
                                    msg.progressBar.Refresh();
                                    msg.Refresh();
                                    msg.Focus();
                                }
                                refresher = 0;
                            }


                            System.Type fType = Reader.GetFieldType(i);
                            Object      chk   = null;
                            try
                            {
                                chk = Reader.GetValue(i);
                            }
                            catch (Exception)
                            {
                                //throw;
                            }
                            if (chk != null)
                            {
                                int    hash = chk.GetHashCode();
                                string dd   = chk.ToString();
                                if (chk != null && dd != "")
                                {
                                    switch (fType.Name)
                                    {
                                    case "Int32":
                                    case "UInt32":
                                    case "Int64":
                                    case "UInt64":
                                        Int64 val = Reader.GetInt64(i);
                                        insertSql += add + addToField + Struct[i].name + " = " + val;
                                        break;

                                    case "Single":
                                    case "Float":
                                        float fVal = Reader.GetFloat(i);
                                        insertSql += add + addToField + Struct[i].name + " = '" + fVal.ToString().Replace(',', '.') + "'";
                                        break;

                                    case "Double":
                                        double dVal = Reader.GetDouble(i);
                                        insertSql += add + addToField + Struct[i].name + " = '" + dVal.ToString().Replace(',', '.') + "'";
                                        break;

                                    case "DateTime":
                                        DateTime dt      = Reader.GetDateTime(i);
                                        String   dtValue = zeroVal(dt.Year) + "-" + zeroVal(dt.Month) + "-" + zeroVal(dt.Day) + " " + dt.TimeOfDay;
                                        insertSql += add + addToField + Struct[i].name + " = '" + dtValue + "'";
                                        break;

                                    case "Boolean":
                                        bool bval = Reader.GetBoolean(i);
                                        if (bval)
                                        {
                                            insertSql += add + addToField + Struct[i].name + " = 1";
                                        }
                                        else
                                        {
                                            insertSql += add + addToField + Struct[i].name + " = 0";
                                        }
                                        break;

                                    default:
                                        string sval = Reader.GetString(i).Replace("'", @"\'");

                                        insertSql += add + addToField + Struct[i].name + " = '" + sval + "'";
                                        break;
                                    }

                                    add = ",";
                                }
                            }
                        }
                        //returnValue += insertSql + ";\n";
                        targetConnection.sql_update(insertSql);
                    }
                    Reader.Close();
                }
            }
            return(count);
        }
Beispiel #8
0
        public Int64 getCopyStatements(MysqlHandler connection, string sourceTable, Int64 start, MysqlHandler targetConnection, List <string> queryList, bool asFullInsert)
        {
            Int64 count               = 0;
            Int64 refresher           = 0;
            List <MysqlStruct> Struct = connection.getAllFieldsStruct(sourceTable);

            string addToField = sourceTable + ".";

            if (showProgress && msg.Visible)
            {
                msg.progressBar.Maximum = (int)this.copyRowLimit + 1;
            }

            if (connection.isConnected())
            {
                MySql.Data.MySqlClient.MySqlDataReader Reader =
                    connection.sql_select("SELECT * FROM " + sourceTable + " LIMIT " + start + "," + this.copyRowLimit);
                if (Reader != null)
                {
                    //if (Reader.RecordsAffected==-1) return 0;
                    bool   startRow        = true;
                    string fullInsert      = "INSERT INTO " + sourceTable;
                    string valuesExport    = "";
                    string valuesExportAdd = "";
                    string fields          = "";
                    string fieldsAdd       = "(";
                    string valuesSeperator = "";
                    while (Reader.Read())
                    {
                        count++;
                        refresher++;
                        string insertSql = "INSERT INTO " + sourceTable + " SET ";



                        string add = "";
                        valuesExportAdd = valuesSeperator + "(";
                        for (int i = 0; i < Reader.FieldCount; i++)
                        {
                            if (refresher > 1000)
                            {
                                if (showProgress && msg.Visible)
                                {
                                    msg.msg.Text          = "get copy statement for Table " + sourceTable + " block: " + start + "/" + count;
                                    msg.progressBar.Value = (int)count;
                                    msg.progressBar.Refresh();
                                    msg.Refresh();
                                    msg.Focus();
                                }
                                refresher = 0;
                            }


                            System.Type fType = Reader.GetFieldType(i);
                            Object      chk   = null;
                            try
                            {
                                chk = Reader.GetValue(i);
                            }
                            catch (Exception)
                            {
                                //throw;
                            }

                            if (asFullInsert)
                            {
                                if (startRow)
                                {
                                    fields   += fieldsAdd + "`" + Struct[i].name + "`";
                                    fieldsAdd = ",";
                                }
                            }

                            if (chk != null)
                            {
                                int    hash = chk.GetHashCode();
                                string dd   = chk.ToString();


                                if (chk != null && dd != "")
                                {
                                    switch (fType.Name)
                                    {
                                    case "Int32":
                                    case "UInt32":
                                    case "Int64":
                                    case "UInt64":
                                        Int64 val = Reader.GetInt64(i);
                                        insertSql += add + addToField + Struct[i].name + " = " + val;
                                        if (asFullInsert)
                                        {
                                            valuesExport += valuesExportAdd + val;
                                        }
                                        break;

                                    case "Single":
                                    case "Float":
                                        float fVal = Reader.GetFloat(i);
                                        insertSql += add + addToField + Struct[i].name + " = '" + fVal.ToString().Replace(',', '.') + "'";
                                        if (asFullInsert)
                                        {
                                            valuesExport += valuesExportAdd + "'" + fVal.ToString().Replace(',', '.') + "'";
                                        }
                                        break;

                                    case "Double":
                                        double dVal = Reader.GetDouble(i);
                                        insertSql += add + addToField + Struct[i].name + " = '" + dVal.ToString().Replace(',', '.') + "'";
                                        if (asFullInsert)
                                        {
                                            valuesExport += valuesExportAdd + "'" + dVal.ToString().Replace(',', '.') + "'";
                                        }
                                        break;

                                    case "DateTime":
                                        DateTime dt      = Reader.GetDateTime(i);
                                        String   dtValue = zeroVal(dt.Year) + "-" + zeroVal(dt.Month) + "-" + zeroVal(dt.Day) + " " + dt.TimeOfDay;
                                        insertSql += add + addToField + Struct[i].name + " = '" + dtValue + "'";
                                        if (asFullInsert)
                                        {
                                            valuesExport += valuesExportAdd + "'" + dtValue + "'";
                                        }
                                        break;

                                    case "Boolean":
                                        bool bval = Reader.GetBoolean(i);
                                        if (bval)
                                        {
                                            insertSql += add + addToField + Struct[i].name + " = 1";
                                        }
                                        else
                                        {
                                            insertSql += add + addToField + Struct[i].name + " = 0";
                                        }
                                        if (asFullInsert)
                                        {
                                            if (bval)
                                            {
                                                valuesExport += valuesExportAdd + "1";
                                            }
                                            else
                                            {
                                                valuesExport += valuesExportAdd + "0";
                                            }
                                        }
                                        break;

                                    default:

                                        string stringVal = Reader.GetString(i);

                                        /*
                                         * if (stringVal.Contains(@"\"))
                                         * {
                                         *  stringVal.Replace(@"\", @"\\");
                                         * }
                                         */
                                        string sval = stringVal.Replace("'", @"\'");
                                        sval       = sval.Replace("‘", "?");
                                        insertSql += add + addToField + Struct[i].name + " = '" + sval + "'";
                                        if (asFullInsert)
                                        {
                                            valuesExport += valuesExportAdd + "'" + sval + "'";
                                        }
                                        break;
                                    }

                                    add             = ",";
                                    valuesExportAdd = ",";
                                }
                                else
                                {
                                    valuesExport += valuesExportAdd + "NULL";
                                }
                            }
                            else
                            {
                                valuesExport += valuesExportAdd + "NULL";
                            }

                            valuesSeperator = ",";
                        }

                        valuesExport += ")";
                        startRow      = false;
                        if (!asFullInsert)
                        {
                            queryList.Add(insertSql);
                        }
                    }
                    if (asFullInsert && count > 0)
                    {
                        string exportSql = fullInsert + fields + ") VALUES " + valuesExport + ";";
                        queryList.Add(exportSql);
                    }
                    Reader.Close();
                }
            }
            return(count);
        }
Beispiel #9
0
        public void refreshSensors()
        {
            isRunning = true;
            usedSensors.Clear();
            for (int i = 0; i < sensorListing.CheckedItems.Count; i++)
            {
                string data = sensorListing.CheckedItems[i].ToString();
                usedSensors.Add(data, i);
            }

            int sensorCount = sensorListing.CheckedItems.Count - 1;
            int viewheight  = 35;

            if (sensorCount > 0)
            {
                viewheight = (flowLayout.Height - 10) / sensorCount;
            }
            if (database != null)
            {
                MySql.Data.MySqlClient.MySqlDataReader reader = database.sql_select("SHOW STATUS");

                string name  = "";
                string value = "";
                //triggerView.Items.Clear();
                for (int i = 0; i < triggerView.Items.Count; i++)
                {
                    triggerView.Items[i].ImageIndex = 100;
                    triggerView.Items[i].ForeColor  = Color.Navy;
                }
                if (reader != null)
                {
                    while (reader.Read())
                    {
                        name  = reader.GetString(0);
                        value = reader.GetString(1);
                        if (usedSensors.ContainsKey(name))
                        {
                            ListViewItem tmp = new ListViewItem();
                            tmp.Text       = name;
                            tmp.ImageIndex = 1;
                            tmp.SubItems.Add(value);
                            tmp.SubItems.Add("0");
                            bool found = false;
                            for (int i = 0; i < triggerView.Items.Count; i++)
                            {
                                if (triggerView.Items[i].Text == tmp.Text)
                                {
                                    found = true;
                                    Double aval = 0;
                                    try
                                    {
                                        aval = Double.Parse(tmp.SubItems[1].Text);
                                    }
                                    catch (Exception)
                                    {
                                        //throw;
                                    }
                                    Double bval = 0;
                                    try
                                    {
                                        bval = Double.Parse(triggerView.Items[i].SubItems[1].Text);
                                    }
                                    catch (Exception)
                                    {
                                        //throw;
                                    }
                                    triggerView.Items[i].SubItems[1].Text = tmp.SubItems[1].Text;
                                    Double cval = aval - bval;
                                    triggerView.Items[i].SubItems[2].Text = cval + "";

                                    triggerView.Items[i].ImageIndex = 1;

                                    if (cval < 0)
                                    {
                                        triggerView.Items[i].ForeColor = Color.Red;
                                    }
                                    if (cval > 0)
                                    {
                                        triggerView.Items[i].ForeColor = Color.Blue;
                                    }
                                    if (cval == 0)
                                    {
                                        triggerView.Items[i].ForeColor = Color.Orange;
                                    }


                                    int t = FindSensorIndexByName(tmp.Text);
                                    if (t > -1)
                                    {
                                        panelSensors[i].Height = viewheight;
                                        panelSensors[t].addValue(cval);
                                        panelSensors[t].Visible = true;
                                        panelSensors[t].Label   = tmp.Text + " : " + cval;
                                        panelSensors[t].Invalidate();
                                    }
                                }
                            }


                            if (!found)
                            {
                                triggerView.Items.Add(tmp);
                            }
                        }
                    }



                    reader.Close();
                }
                // removing deactivated sensors
                for (int i = 0; i < triggerView.Items.Count; i++)
                {
                    if (triggerView.Items[i].ForeColor == Color.Navy)
                    {
                        int t = FindSensorIndexByName(triggerView.Items[i].Text);
                        if (t > -1)
                        {
                            panelSensors[t].Visible = false;
                        }
                        triggerView.Items[i].Remove();
                    }
                }
            }
            isRunning = false;
        }