backup/restore database SQL из vb6.0

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
kibernetics
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 945
Зарегистрирован: 03.05.2006 (Ср) 13:31
Откуда: Minsk

backup/restore database SQL из vb6.0

Сообщение kibernetics » 17.08.2009 (Пн) 10:19

Народ, а поделитесь кодом, как программно сделать backup/restore базы данных SQL 2005 из приложения VB6.0, чтобы можно было .bak локально сохранять. И, соответственно, его же и восттанавливать в случае чего.

kibernetics
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 945
Зарегистрирован: 03.05.2006 (Ср) 13:31
Откуда: Minsk

Re: backup/restore database SQL из vb6.0

Сообщение kibernetics » 17.08.2009 (Пн) 11:04

в общем, бекап написал такой:
Код: Выделить всё
Public Function DatabaseBackup(strFile As String) As Boolean
    Dim objCommand      As Object
   
    If DatabaseConnection Then
        Set objCommand = CreateObject("ADODB.Command")
        objCommand.ActiveConnection = CN
        'objCommand.CommandType = 4 'adCmdStoredProc
        objCommand.CommandText = "backup database [temp_db] to disk=' & strFile & '"
        objCommand.Execute
    End If
   
    Set objCommand = Nothing
End Function


а вот с рестором скорей всего будут проблемы. Например, как обойти в коде такой мессдж:
"Exclusive access could not be obtained because the database in use".

Народ, подскажите кто знает, как программно получить подключённых юзеров, и при необходимости их отключить?

HandKot
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 283
Зарегистрирован: 28.06.2006 (Ср) 13:34
Откуда: Sergiev Posad

Re: backup/restore database SQL из vb6.0

Сообщение HandKot » 17.08.2009 (Пн) 12:35

Вот выписка из МСДН
Во время автономного восстановления, если указанная база данных используется, функция RESTORE после короткой задержки принудительно отключает пользователей


сообщение вероятно связано с тем, что Вы пытаетесь её перевести в SINGLE_USER?
если так, то можно выдать такую команду

Код: Выделить всё
alter database db_name set single_user with rollback immediate
I Have Nine Lives You Have One Only
THINK!

kibernetics
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 945
Зарегистрирован: 03.05.2006 (Ср) 13:31
Откуда: Minsk

Re: backup/restore database SQL из vb6.0

Сообщение kibernetics » 18.08.2009 (Вт) 12:39

HandKot, да, спасибо, сэтим выяснил и разобрался.
А вот интересно, запускаю рестор, приложение висит пока делается рестор. А может как-то можно из соединения вытаскивать процент восстановления?

HandKot
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 283
Зарегистрирован: 28.06.2006 (Ср) 13:34
Откуда: Sergiev Posad

Re: backup/restore database SQL из vb6.0

Сообщение HandKot » 18.08.2009 (Вт) 13:22

по поводу "висит" - запускать команду в асинхронном режиме (objCommand.Execute adAsyncExecute)
по поводу % - вот тут посмотрите
I Have Nine Lives You Have One Only
THINK!


Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 30

    TopList