コード例 #1
0
        public void ExportarLinhasTableDados(ExportToFile exportToFile, string table)
        {
            var mySqlConnection = BackupMySqlConnection.CriarConexao();
            var sql             = string.Format("SELECT * FROM `{0}`;", table);

            try
            {
                if (mySqlConnection.State != ConnectionState.Open)
                {
                    mySqlConnection.Open();
                }

                using (var command = new MySqlCommand(sql, mySqlConnection))
                {
                    var rdr        = command.ExecuteReader();
                    var totalBytes = default(int);

                    if (!rdr.HasRows)
                    {
                        return;
                    }

                    _exportToFile.ExportWriteLine();
                    _exportToFile.ExportWriteLine(string.Format("LOCK TABLES `{0}` WRITE;", table));
                    _exportToFile.ExportWriteLine();


                    exportToFile.ExportWriteLine();
                    exportToFile.ExportWriteLine(string.Format("/*!40000 ALTER TABLE `{0}` DISABLE KEYS */;", table));
                    exportToFile.ExportWriteLine();


                    exportToFile.ExportWriteLine();
                    ExcluirIndex(table);
                    exportToFile.ExportWriteLine();


                    while (rdr.Read())
                    {
                        try
                        {
                            var sqlDataRow = GetValueString(rdr, table);

                            exportToFile.ExportWriteLine(sqlDataRow);

                            totalBytes += sqlDataRow.Length;

                            if (totalBytes < VariaveisGeral.LimiteCommit)
                            {
                                continue;
                            }

                            exportToFile.ExportWriteCommit();
                            totalBytes = 0;
                        }
                        catch (Exception e)
                        {
                            Console.Write("tabela ==> " + table);
                            Console.WriteLine(e);
                        }
                    }

                    exportToFile.ExportWriteLine();
                    exportToFile.ExportWriteLine(string.Format("/*!40000 ALTER TABLE `{0}` ENABLE KEYS */;", table));
                    exportToFile.ExportWriteLine();


                    IncluirIndex(table);

                    _exportToFile.ExportWriteLine();
                    _exportToFile.ExportWriteLine("UNLOCK TABLES;");
                    _exportToFile.ExportWriteLine();
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }
        }