Example #1
0
        private bool CopyData()
        {
            bool ret = false;

            this.textBoxAction.Text = "";
            this.toolStripProgressBarTable.Value = 0;
            Application.DoEvents();

            DateTime dtStart = DateTime.Now;

            int countTables = 0;
            int countRows   = 0;

            StringBuilder sb = new StringBuilder();

            //
            KaJourDAL.KaJour_Global_CE.SQLProvider = "SQLCE";
            KaJourDAL.KaJour_Global_CE.SQLConnStr  = "Data Source='" + this.textBoxSqlCe.Text + "'";

            KaJourDAL.KaJour_Global_LITE.SQLProvider = "SQLITE";
            KaJourDAL.KaJour_Global_LITE.SQLConnStr  = "Data Source='" + this.textBoxSQLite.Text + "'";

            bool error = false;

            bool testNRecords     = this.checkBoxTestNRecords.Checked;
            int  testNRecordCount = -1;

            try
            {
                testNRecordCount = Convert.ToInt32(this.textBoxTestNRecords.Text);
            }
            catch (Exception)
            {
            }

            // ##############################################
            sb.AppendLine(KaJourDAL.KaJour_Global_CE.SQLProvider + ":");

            var sqLITE = new KaJourDAL.SQL(KaJourDAL.KaJour_Global_LITE.SQLProvider, KaJourDAL.KaJour_Global_LITE.SQLConnStr);

            try
            {
                sqLITE.Connect();
                sqLITE.DisConnect();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error: " + ex.Message);
                return(ret);
            }

            var       sqlCe    = new KaJourDAL.SQL(KaJourDAL.KaJour_Global_CE.SQLProvider, KaJourDAL.KaJour_Global_CE.SQLConnStr);
            DataTable tablesCE = null;

            try
            {
                sqlCe.Connect();
                tablesCE = sqlCe.GetTableList("", false);
                sqlCe.DisConnect();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error: " + ex.Message);
                return(ret);
            }
            if (tablesCE != null)
            {
                for (int iTable = 0; iTable < tablesCE.Rows.Count; iTable++)
                {
                    countTables++;

                    var tableName = tablesCE.Rows[iTable][0].ToString();
                    sqlCe.Connect();
                    var tableRec1 = sqlCe.GetTableRecCount(tableName);
                    sqlCe.DisConnect();

                    this.toolStripProgressBarTable.Value = ((iTable + 1) * 100) / tablesCE.Rows.Count;
                    this.toolStripStatusLabel2.Text      = " " + (iTable + 1).ToString() + "/" + tablesCE.Rows.Count.ToString() + " " + tableName + " 0/" + tableRec1.ToString() + " ";
                    Application.DoEvents();

                    sb.AppendLine("  " + tableName + "   Rec:" + tableRec1.ToString());

                    // Check if Table exists, Create Table
                    bool sqliteCheckCreateTable = this.CreateSQLiteTable(tableName, sqlCe, sqLITE);

                    // delete SQLite
                    var del    = sqLITE.DeleteBuilder(tableName);
                    var retDel = sqLITE.ExecuteNonQuery("DELETE", del);

                    bool   paraOk       = false;
                    var    par          = sqlCe.InitParameterList();
                    string sqlFieldList = "";
                    string sqlValueList = "";
                    string sqlIns       = sqLITE.InsertBuilder(tableName); // "insert into Table"

                    var tableSelect = sqlCe.Execute("SELECT", "SELECT * FROM " + tableName);
                    for (int iRow = 0; iRow < tableSelect.Rows.Count; iRow++)
                    {
                        countRows++;

                        // Parameter
                        //par = sqlCe.InitParameterList();
                        if (!paraOk)
                        {
                            // Parameter
                            sqlFieldList = "";
                            sqlValueList = "";
                            for (int iCol = 0; iCol < tableSelect.Columns.Count; iCol++)
                            {
                                var colVal  = tableSelect.Rows[iRow][iCol];
                                var colName = tableSelect.Columns[iCol].ColumnName;

                                par.Add(colName, colVal);

                                // (Fld1) values (@Fld1)
                                if (sqlFieldList != "")
                                {
                                    sqlFieldList += ",";
                                }
                                sqlFieldList += " [" + colName + "]";

                                if (sqlValueList != "")
                                {
                                    sqlValueList += ",";
                                }
                                sqlValueList += " @" + colName;
                            }

                            // insert into SQLite
                            //var sqLITE = new KaJourDAL.SQL(KaJourDAL.KaJour_Global_LITE.SQLProvider, KaJourDAL.KaJour_Global_LITE.SQLConnStr);
                            sqlIns += " (" + sqlFieldList + ") VALUES (" + sqlValueList + ")";  // (Fld1) values (@Fld1)

                            //...

                            paraOk = true;
                        }

                        for (int iCol = 0; iCol < tableSelect.Columns.Count; iCol++)
                        {
                            var colVal  = tableSelect.Rows[iRow][iCol];
                            var colName = tableSelect.Columns[iCol].ColumnName;
                            //par.Add(colName, colVal);

                            par[colName] = colVal;
                        }

                        this.toolStripStatusLabel2.Text = " " + (iTable + 1).ToString() + "/" + tablesCE.Rows.Count.ToString() + " " + tableName + " " + (iRow + 1).ToString() + "/" + tableRec1.ToString() + " ";
                        bool doEvents = UXHelper.CalcModulo(iRow);
                        if (doEvents)
                        {
                            Application.DoEvents();
                        }

                        // Test
                        if (testNRecords)
                        {
                            if (testNRecordCount > 0)
                            {
                                if (iRow >= testNRecordCount)
                                {
                                    break;  //=================>
                                }
                            }
                        }

                        // Insert
                        var retIns = sqLITE.ExecuteNonQuery("INSERT", sqlIns, par);
                        var exc    = sqLITE.GetException();
                        if (exc != null)
                        {
                            MessageBox.Show("Error:" + exc.Message);
                            sb.AppendLine("--------------------");
                            sb.AppendLine("Error:" + exc.Message);
                            sb.AppendLine("--------------------");

                            error = true;
                            break;  //=================>
                        }
                    }
                    if (error)
                    {
                        break;  //=================>
                    }

                    ret = true;
                }
            }

            this.toolStripProgressBarTable.Value = 100;

            DateTime dtEnde = DateTime.Now;

            TimeSpan ts        = dtEnde - dtStart;
            string   timings   = "Duration: " + dtStart.ToString("HH:mm:ss") + " - " + dtEnde.ToString("HH:mm:ss") + " -> " + ts.ToString();
            double   RecPerSec = countRows / ts.TotalSeconds;

            sb.AppendLine("Count: Tables: " + countTables.ToString() + ", Rows: " + countRows.ToString() + ", Rec/Sec: " + RecPerSec.ToString());
            sb.AppendLine("" + timings);
            this.textBoxAction.Text = sb.ToString();

            this.toolStripStatusLabel2.Text = " Fertig: " + timings;

            return(ret);
        }
Example #2
0
        private bool DelTarget()
        {
            bool ret = false;

            this.textBoxAction.Text = "";
            this.toolStripProgressBarTable.Value = 0;
            Application.DoEvents();

            int countTables = 0;
            int countRows   = 0;

            StringBuilder sb = new StringBuilder();

            KaJourDAL.KaJour_Global_LITE.SQLProvider = "SQLITE";
            KaJourDAL.KaJour_Global_LITE.SQLConnStr  = "Data Source='" + this.textBoxSQLite.Text + "'";

            // ##############################################
            sb.AppendLine(KaJourDAL.KaJour_Global_LITE.SQLProvider + ":");

            var       sqLITE     = new KaJourDAL.SQL(KaJourDAL.KaJour_Global_LITE.SQLProvider, KaJourDAL.KaJour_Global_LITE.SQLConnStr);
            DataTable tablesLITE = null;

            try
            {
                sqLITE.Connect();
                tablesLITE = sqLITE.GetTableList("", false);
                sqLITE.DisConnect();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error: " + ex.Message);
                return(ret);
            }
            if (tablesLITE != null)
            {
                for (int iTable = 0; iTable < tablesLITE.Rows.Count; iTable++)
                {
                    countTables++;

                    this.toolStripProgressBarTable.Value = ((iTable + 1) * 100) / tablesLITE.Rows.Count;
                    Application.DoEvents();

                    var tableName = tablesLITE.Rows[iTable][0].ToString();
                    sqLITE.Connect();
                    var tableRec1 = sqLITE.GetTableRecCount(tableName);
                    sqLITE.DisConnect();

                    countRows += tableRec1;

                    // Delete
                    var del    = sqLITE.DeleteBuilder(tableName);
                    var retDel = sqLITE.ExecuteNonQuery("DELETE", del);

                    sqLITE.Connect();
                    var tableRec2 = sqLITE.GetTableRecCount(tableName);
                    sqLITE.DisConnect();

                    sb.AppendLine("  " + tableName + "   Rec:" + tableRec1.ToString() + "   Del:" + retDel.ToString() + "   Rec:" + tableRec2.ToString());
                }
            }
            sb.AppendLine("  Count: Tables: " + countTables.ToString() + ", Rows: " + countRows.ToString());

            this.textBoxAction.Text = sb.ToString();
            this.toolStripProgressBarTable.Value = 100;

            return(ret);
        }