Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Как сделать BACKUP базы программно? MSSQLExpress 2005, VS 2005, C# 
V
    Опции темы
thomas
Дата 15.6.2009, 13:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Доцент... почти
***


Профиль
Группа: Завсегдатай
Сообщений: 1385
Регистрация: 3.10.2006
Где: " Сказочное королевство"

Репутация: 35
Всего: 65



Приветствую всех.
Кто делал в своих приложениях программный BACKUP Database прошу подсказать как это реализовываеться.
Win приложение написано на C# в VS 2005, в качестве БД используется   MS SQL Express 2005.
Необходимо добавить возможность пользователю программы делать резервную копию БД, ну и соответственно восстановление БД при необходимости.
Папка для резервной копии БД либо жестко указана как директория программы, либо пользователь сам выбирает папку.

Заранее благодарю.
 


--------------------
Крепко жму горло, искренне ваш Thomas. (С)vingrad
Некоторые сорта флоры буквально за одно мгновение превращают нас в фауну!
Проблемы негров шерифа не волнуют.
PM MAIL   Вверх
jonie
Дата 15.6.2009, 21:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 5613
Регистрация: 21.8.2005
Где: Владимир

Репутация: 8
Всего: 118



выполнить на базе
Код

BACKUP DATABASE [ИмяБазы] TO  DISK = N'путь куда бэкапить' 
WITH NOFORMAT, NOINIT,  NAME = N'имя бэкапа', SKIP, NOREWIND, NOUNLOAD,  STATS = 10

для справки читайте BOL.


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
Unlocker
Дата 28.6.2009, 09:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 125
Регистрация: 2.11.2007
Где: Москва - Знаменск (Капустин Яр)

Репутация: 1
Всего: 2



Программно, как я понимаю, это из кода пользовательского приложения.
Для Sql Sqerver 2005 это можно сделать, используя SMO.
Предлагаю общему вниманию пример из книги "Разработка приложений на основе Microsoft SQL Server 2005" Браст Эндрю Дж., Форте С. и если срочно понадобятся объяснения можно будет обратиться к первоисточнику.
Код

private void btnBackup_Click(object sender, EventArgs e)
        {
            //use the server selected in the Server ComboBox
            //this server can be typed in as well to the Cbo
            Server svr = new Server(cboServers.Text.ToString());
            Backup bkp = new Backup();

            Cursor = Cursors.WaitCursor;
            dataGridView1.DataSource = "";

            //attempt the backup and show a progress meter
            //a lot can go wrong here from file access
            //to DBCC issues so it is important to handle all
            //errors that may rise
            try
            {
                string strFileName = txtFileName.Text.ToString();
                string strDatabaseName = cboDatabase.Text.ToString();
                
                bkp.Action = BackupActionType.Database;
                bkp.Database = strDatabaseName;

                //set the device: File, Tape, etc
                bkp.Devices.AddDevice(strFileName, DeviceType.File);
                //set this when you want to do Incremental
                bkp.Incremental = chkIncremental.Checked;
 
                //progress meter stuff
                progressBar1.Value = 0;
                progressBar1.Maximum = 100;
                progressBar1.Value = 10;

                //this gives us the % complete by handling the event
                //provided by SMO on the percent complete, we will
                //update the progress meter in the event handler

                //set the progress meter to 10% by default
                bkp.PercentCompleteNotification = 10;
                //call to the event handler to incriment the progress meter

                bkp.PercentComplete += new PercentCompleteEventHandler(ProgressEventHandler);
                //this does the backup
                bkp.SqlBackup(svr);
                //alert the user when it is all done
                MessageBox.Show("Database Backed Up To: " + strFileName, "SMO Demos");
            
                
            }
            catch (SmoException exSMO)
            {
                MessageBox.Show(exSMO.ToString());

            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }

            finally
            {
                Cursor = Cursors.Default;
                progressBar1.Value = 0;
            }
            

        }

Также подобные примеры можно найти в книге Р. Виейра "Программирование SQL Server 2005 для профессионалов". Обе книги можно найти в сети, в электронных библиотеках.
--------------------
"Если бы Шекспир был программистом, то фразу "To be or not to be" он написал бы так: 2b | ! 2b."
PM MAIL ICQ Skype GTalk Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Базы данных под .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0453 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.