C# - SQL adatbázisokat archiváló alkalmazás készítése

forráskód letöltése
Készítünk egy alkalmazást, amely segítségével archiválhatjuk SQL szerverünk adatbázisait. A program meghatározza az adatbázisok fizikai helyét, majd a WINRAR tömörítőprogram segítségével az adatbázisok állományait elmenti egyetlen tömörített állományba.
A mellékelt példaprogram használatához a WINRAR programra is szükség van.
Amennyiben az SQL szerver eléréséhez szükséges ConnectionString konstans (Form1.cs 171. sora) értéke az Ön beállításainak nem megfelelő, módosítsa annak értékét, hogy az SQL szerver elérhetővé váljon (a ConnectionString megadásánál egyik adatbázishoz sem kell csatlakozni).
Adatbázisok fizikai helyének meghatározása
Az adatbázisok fizikai helyének meghatározását két tárolt eljárás segítségével tehetjük meg.
Először lekérdezzük a szerveren található adatbázisokat. Ezt az sp_databases eljárás segítségével tehetjük meg. Az eljárás eredménytáblájában minden adatbázis külön rekordot képez. A rekord első mezője adja vissza az adatbázis nevét.
Az sp_databases eljárás meghívásához mindössze csak az SQL szerverrel kell kapcsolatot létesítenünk. A kapcsolat felépítése során nem kell megadnunk semmilyen adatbázist.
Az adatbázisok neveit ideiglenesen feljegyezzük egy sztring tömbben (databases).
Miután megvan az adatbázislistánk, végig kell mennünk az egyes adatbázisokon. Mindegyikhez egyesével kell csatlakoznunk.
Ezt egy for ciklus segítségével könnyedén megtehetjük.
for (int i = 0; i <databases.Length; i++)
{
  connection.Close();
  connection.ConnectionString = ConnectionString + "; initial catalog=" + databases[i];
Egy adatbázis állományainak fizikai helyéről az sp_helpfile tárolt eljárás segítségével kérdezhetünk le információkat. Ha az adatbázis több állományból áll, akkor azok külön rekordot képviselnek az eredménytáblában. Az eredménytábla filename mezőjéből olvashatjuk ki az állományok elérési útját és nevét. A filename mező indexe 2.
A filename mezőben a hasznos adatok mögött felesleges szóközök szerepelnek, amelyeket le kell vágnunk.
for (int j = 0; j < paths.Rows.Count; j++)
  listBox1.Items.Add(paths.Rows[j].ItemArray[2].ToString().Trim());
Tömörítés a WINRAR-ral
A WINRAR programot parancssori üzemmódban használjuk fel.
A tömörített állományt az alábbi WINRAR szintaktikával hozzuk létre.
WINRAR a cél_állomány tömörítendő_állományok_listája
Az „a” azt jelenti, hogy új állományt hozunk létre. A cél_állomány a létrehozandó állomány nevét jelenti, míg az utolsó paraméterben egymás után, szóközökkel elválasztva, fel kell sorolnunk azokat az állományokat, amelyeket tömöríteni akarunk.
A WINRAR program elindításához a System.Diagnostics.Process.Start függvényt használjuk fel.
string files = "";
for (int i = 0; i < listBox1.Items.Count; i++)
  files += '"' + listBox1.Items[i].ToString() + '"' + ' '; 
        System.Diagnostics.Process.Start("winrar", " a " + '"' + textBox1.Text + '"' + files);