Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
M-am inregistrat in e-factura. Ca...

Voi cum faceți fața ava...

Spital stomatologic sector 4 grat...

Pastrare numar inmatriculare !
 Supraveghere autoturism in parcar...

Bsod repetat

Angst Romania - Oficial in Insolv...

Pocket PC Handheld ajutor.
 Intrerupere utilitati casa tempor...

Care credeti ca este probabilitat...

paravan geam / obturare vedere

Motorola E32, se aprinde flashlig...
 La mulți ani @sylvius!

Joy Berceni Biruintei 87

Recomandare suport tableta

Vanzare apartament
 

C# MariaDB backup si update prin fisier *.sql mare(mule comenzi sql)

- - - - -
  • Please log in to reply
5 replies to this topic

#1
GTIAN1516

GTIAN1516

    New Member

  • Grup: Candidate Members
  • Posts: 7
  • Înscris: 27.10.2019
Salutari la toti,
as dorii sa fac o aplicatie in C# care sa faca un backup al unei DB(Maria DB) sub MySql Server si un Update prin rularea unui fisier *.sql de mari dimensiuni(multe comenzi SQL).Poate cineva sa ma ajute cu vre.-o solutie?

#2
_Smiley_

_Smiley_

    Guru Member

  • Grup: Senior Members
  • Posts: 20,022
  • Înscris: 24.02.2006
solutia e fix ce ai spus tu ca vrei sa faci :)
spune mai bine ce probleme ai in realizarea ei.

#3
GTIAN1516

GTIAN1516

    New Member

  • Grup: Candidate Members
  • Posts: 7
  • Înscris: 27.10.2019

View Post_Smiley_, on 01 noiembrie 2019 - 19:33, said:

solutia e fix ce ai spus tu ca vrei sa faci Posted Image
spune mai bine ce probleme ai in realizarea ei.
Nu stiu cum sa execut fisierul *.sql de mare dimensiune...query simple gen SELECT etc,functioneaza,doar la fisierul cu mai multe query's da errori

#4
_Smiley_

_Smiley_

    Guru Member

  • Grup: Senior Members
  • Posts: 20,022
  • Înscris: 24.02.2006
globul meu de cristal zice ca ai probleme cu placa video: mesajul de eroare e prea lung si nu incape in memoria placii video, asa ca da pe dinafara.
ne-am putea da cu parerea mult mai la obiect, daca am si sti ce erori da....


ps: la modul general, poti separa query-urile cu un GO pe o linie, apoi poti parsa fisierul respectiv, faci string.split si executi secvential fiecare query in parte. sunt ceva limite la dimensiunea maxima a unui query, le poti cauta prin documentatia MySql-ului sau a conectorului pe care-l folosesti.

#5
GTIAN1516

GTIAN1516

    New Member

  • Grup: Candidate Members
  • Posts: 7
  • Înscris: 27.10.2019

View Post_Smiley_, on 02 noiembrie 2019 - 18:12, said:

globul meu de cristal zice ca ai probleme cu placa video: mesajul de eroare e prea lung si nu incape in memoria placii video, asa ca da pe dinafara.
ne-am putea da cu parerea mult mai la obiect, daca am si sti ce erori da....


ps: la modul general, poti separa query-urile cu un GO pe o linie, apoi poti parsa fisierul respectiv, faci string.split si executi secvential fiecare query in parte. sunt ceva limite la dimensiunea maxima a unui query, le poti cauta prin documentatia MySql-ului sau a conectorului pe care-l folosesti.

Multumesc pentru indicatie!Am metoda de citire si executie:
    private void ReadBDUpdate()
    {
    string _file = tbURL.Text;

    INIFileRead IniFile = new INIFileRead(_file);

    if (_file != null)
    {
    string[] fArray = File.ReadAllLines(path: _file);
foreach (var item in fArray)
    {

#6
GTIAN1516

GTIAN1516

    New Member

  • Grup: Candidate Members
  • Posts: 7
  • Înscris: 27.10.2019

View Post_Smiley_, on 02 noiembrie 2019 - 18:12, said:

globul meu de cristal zice ca ai probleme cu placa video: mesajul de eroare e prea lung si nu incape in memoria placii video, asa ca da pe dinafara.
ne-am putea da cu parerea mult mai la obiect, daca am si sti ce erori da....


ps: la modul general, poti separa query-urile cu un GO pe o linie, apoi poti parsa fisierul respectiv, faci string.split si executi secvential fiecare query in parte. sunt ceva limite la dimensiunea maxima a unui query, le poti cauta prin documentatia MySql-ului sau a conectorului pe care-l folosesti.

Sorry...incepator,revin

private void ReadBDUpdate()
    {
    int SecNr = 0;
    int servStart = 0;
    string _file = tbURL.Text;

    INIFileRead IniFile = new INIFileRead(_file);

    if (_file != null)
    {
    string[] fArray = File.ReadAllLines(path: _file);
    int index = 0;
    string server = "";
    string port = "";
    string user = "";
    string passw = "";
  
    foreach (var item in fArray)
    {
    index++;
    var x = 0;

    if (!item.Contains("=") && item.Contains("[") && item.Contains("]"))
    {
    item.Replace(" ", "").ToLower();
    PruefeSection(item);
    x = 1;
    //MessageBox.Show("" + item);
    }
    else
    {
    if ((item.Replace(" ", "") == "enable=1") && (x!=0))
    {
    x = 0;
    SecNr++;
    servStart++;

    m_newLogger.WriteLog("Info", "Start Backup of DB number: !" + SecNr);
  
    server = fArray[index+8].Replace(" ","");
    port = fArray[index + 9].Replace(" ", "");
    string dbase = fArray[index].Replace(" ", "");
    user = fArray[index + 10].Replace(" ", "");
    passw = fArray[index + 11].Replace(" ", "");

    RoutineBackup(server, port, dbase, user, passw);
RoutineSql(server,port,dbase,user,passw);
    MessageBox.Show("" + server+ " "+port+ " "+dbase+ " "+user+ " "+passw);
    }
   ----------------------
private void RoutineBackup(string server, string port, string dbase, string userId, string passw)
    {
    string constring = "server=localhost;port=5599;CharSet=utf8;user=admin;pwd=service;database=oms_qdoc_main;";
    string file = "C:\\backup.sql";
    using (MySqlConnection conn = new MySqlConnection(constring))
    {
    using (MySqlCommand cmd = new MySqlCommand())
    {
    using (MySqlBackup mb = new MySqlBackup(cmd))
    {
    cmd.Connection = conn;
    conn.Open();
    mb.ExportToFile(file);
    conn.Close();
    }
    }
    }
}
-------------------
    private void RoutineSql(string server,string port,string dbase,string userId,string passw)
    {
    string mysqlPath = "";
    string pathSql = "";
    //int pp = 0;

    if (mysqlPath == "" | mysqlPath == null)
    {
    mysqlPath = Properties.Settings.Default.textBoxPathMySql;
    }

    if (pathSql == "" | pathSql == null)
    {
    pathSql = Properties.Settings.Default.textBoxSQLPath;
    }

    if (Directory.Exists(pathSql))
    {
try
    {
    string[] arraySql = new string[14];
    arraySql[0] = pathSql+"before_update.sql";
    arraySql[1] = pathSql+"oms_qmmapit_main_tables_optimize.sql";
    arraySql[2] = pathSql+"02_oms_qmmapit_main_statictables.sql";
    arraySql[3] = pathSql+"03_oms_qmmapit_main_dbchangelog.sql";
    arraySql[4] = pathSql+"oms_qmmapit_main_general_update.sql";
arraySql[13] = pathSql+"after_update.sql";

    var connString = @"SERVER=localhost; PORT=5599;CharSet=utf8; DATABASE=oms_qdoc_main; UID=admin; PASSWORD=service";
    var conn = new MySqlConnection(connString);

    conn.Open();
    if (conn.State == System.Data.ConnectionState.Open)
    {
    m_newLogger.WriteLog("Info", "MySQL Connection OPEN!");
    }
foreach (var item in arraySql)
    {
try
    {
string mySQLCommands = File.ReadAllText(item);
    using (var cmd = new MySqlCommand(mySQLCommands, conn))
    {
    cmd.Connection = conn;

    cmd.ExecuteNonQuery();

    m_newLogger.WriteLog("Info", "MySQL Command: " + connString);
    }
}
    catch (Exception w)
    {
    Console.WriteLine(w.Message);
    Console.WriteLine(w.StackTrace);
    Console.WriteLine(w.Source);
    }
    }
    }
    conn.Close();
    }

--------------Si structura fisierelor sql-exemplu:





--
--  Table `qmconfig`
--

CREATE TABLE IF NOT EXISTS `qmconfig` (
  `QMcnf_id` int(11) NOT NULL AUTO_INCREMENT,
  `QMcnf_guid` varchar(38) CHARACTER SET utf8 NOT NULL,
  `QMcnf_name` varchar(255) CHARACTER SET utf8 NOT NULL,
  `QMcnf_value` varchar(255) CHARACTER SET utf8 NOT NULL,
  `QMcnf_default` varchar(255) CHARACTER SET utf8 NOT NULL,
  `QMcnf_displayname` varchar(255) CHARACTER SET utf8 NOT NULL,
  `QMcnf_descripe` text CHARACTER SET utf8 NOT NULL,
  `QMcns_id` int(11) NOT NULL DEFAULT '5',
  `QMcnf_type` varchar(100) CHARACTER SET utf8 NOT NULL,
  `QMcnf_items` text CHARACTER SET utf8 NOT NULL,
  `QMcnf_isenabled` tinyint(1) NOT NULL,
  `QMcnf_isvisible` int(11) NOT NULL,
  `QMcnf_order` int(11) DEFAULT NULL,
  `QMcnf_createdatetime` datetime NOT NULL,
  `QMcnf_changetimestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`QMcnf_id`),
  UNIQUE KEY `QMcnf_name` (`QMcnf_name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;





CREATE TABLE IF NOT EXISTS `qmconfigldap` (
  `QMcnl_id` int(11) NOT NULL AUTO_INCREMENT,
  `QMcnl_guid` varchar(38) CHARACTER SET utf8 NOT NULL,
  `QMcnl_path` varchar(255) CHARACTER SET utf8 NOT NULL,
  `QMcnl_displayname` varchar(255) CHARACTER SET utf8 NOT NULL,
  `QMcnl_descripe` text CHARACTER SET utf8 NOT NULL,
  `QMcnl_type` tinyint(4) NOT NULL,
  `QMpro_guid` varchar(38) NOT NULL,
  `QMcnl_enabled` tinyint(4) NOT NULL,
  `QMcnl_createdatetime` datetime NOT NULL,
  `QMcnl_changetimestamp` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
  PRIMARY KEY (`QMcnl_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
# --------------------------------------------------------


#
# Table `qmcontroluser`
#

CREATE TABLE qmcontroluser (
  QMcon_id int(11) unsigned NOT NULL default '0',
  QMfil_id int(11) unsigned NOT NULL default '0',
  QMfia_id int(11) unsigned NOT NULL default '0',
  QMuse_id int(11) unsigned NOT NULL default '0',
  QMcon_wasread tinyint(1) unsigned NOT NULL default '0',
  QMcon_wasreaddatetime datetime default '0000-00-00 00:00:00',
  QMcon_changetimestamp timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
  KEY QMfil_id (QMfil_id),
  KEY QMcon_wasread (QMcon_wasread),
  KEY QMcon_wasreaddatetime (QMcon_wasreaddatetime),
  KEY QMuse_id (QMuse_id),
  KEY QMfia_id (QMfia_id)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;
# --------------------------------------------------------

Anunturi

Chirurgia endoscopică a hipofizei Chirurgia endoscopică a hipofizei

"Standardul de aur" în chirurgia hipofizară îl reprezintă endoscopia transnazală transsfenoidală.

Echipa NeuroHope este antrenată în unul din cele mai mari centre de chirurgie a hipofizei din Europa, Spitalul Foch din Paris, centrul în care a fost introdus pentru prima dată endoscopul în chirurgia transnazală a hipofizei, de către neurochirurgul francez Guiot. Pe lângă tumorile cu origine hipofizară, prin tehnicile endoscopice transnazale pot fi abordate numeroase alte patologii neurochirurgicale.

www.neurohope.ro

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate