Napravio sam zasebnu klasu u programu koja izvrsava upite u MySQL bazi i vraca dataset sa podacima. Kod izvrsavanja upita ide ovako:
Code:
try
{
MySqlConnection Conn = new MySqlConnection(ovde su podaci za ConnectionString);
Podaci.Tables.Clear(); // 'Podaci' je dataset definisan na nivou cele MySQL klase
Conn.Open();
MySqlTransaction Transakcija = Conn.BeginTransaction();
foreach (string Upit in ListaUpita) // Lista upita je tekstualna lista upita koji trebaju da se izvrse redosledom u listi
{
switch (Upit.StartsWith("SELECT"))
{
case true:
//ovde ide popunjavanje dataseta Podaci preko MySQLAdapter-a
break;
case false:
//ovde izvrsavanje azuriranja (INSERT ili UPDATE)
break;
}
}
Transakcija.Commit();
Conn.Close();
}
catch (Exception ex)
{
ovde ide hvatanje ex.Message u javnu tekstualnu promenljivu
}
ListaUpita.Clear();
try
{
MySqlConnection Conn = new MySqlConnection(ovde su podaci za ConnectionString);
Podaci.Tables.Clear(); // 'Podaci' je dataset definisan na nivou cele MySQL klase
Conn.Open();
MySqlTransaction Transakcija = Conn.BeginTransaction();
foreach (string Upit in ListaUpita) // Lista upita je tekstualna lista upita koji trebaju da se izvrse redosledom u listi
{
switch (Upit.StartsWith("SELECT"))
{
case true:
//ovde ide popunjavanje dataseta Podaci preko MySQLAdapter-a
break;
case false:
//ovde izvrsavanje azuriranja (INSERT ili UPDATE)
break;
}
}
Transakcija.Commit();
Conn.Close();
}
catch (Exception ex)
{
ovde ide hvatanje ex.Message u javnu tekstualnu promenljivu
}
ListaUpita.Clear();
Problem nastaje kada dodje do greske u izvrsavanju nekog od upita (najcesce azuriranja INSERT ili UPDATE). Tada se ponovnim prosledjivanjem liste upita i pokusaje izvrsenja istih javlja greska 'Nested transactions are not supported'. Googlao sam, ali nisam uspeo da nadjem resenje. Ima li ko predloga za ovo ?
Unapred hvala ...