Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Поооомооооогиииитееее, плииииз!!!!!!!!! / 17 сообщений из 17, страница 1 из 1
02.02.2004, 16:55:44
    #32395701
Con
Con
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поооомооооогиииитееее, плииииз!!!!!!!!!
Пишу в отчаянии.
Кому-нибудь приходилось делать BackUp и Restore SQL-евской базы данных в VB?
Если приходилось, то пожалуйста, дайте пример кода проги если не сложно. А то я уже два дня мучаюсь, никак не могу сделать, а очень надо.

Заранее ОГРООООООООМНОЕ спасибо!!!!!!!!
С уважением,
Константин
...
Рейтинг: 0 / 0
02.02.2004, 17:44:50
    #32395791
boevik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поооомооооогиииитееее, плииииз!!!!!!!!!
И за чем так долго мучатся ...

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
Public Function ADOBackUp(ByVal sDBName As String, _
                                ByVal sPath As String, _
                                ByVal sServer As String, _
                                ByVal sNameBackup As String, _
                                ByVal sDescription) As Boolean
Dim cn As Connection
Dim sConnectionString As String
Dim sSQL As String

    'preparing strings
800    sConnectionString = CONNECTION_STRING & "Initial Catalog=master;Data Source=" & sServer
810    sSQL = "BACKUP DATABASE " + sDBName + " TO DISK  = ' " + sPath + " '" & _
            " WITH INIT, DESCRIPTION = ' " + sDescription + " '" & _
            ", NAME = ' " + sNameBackup + " '"
                    
820    On Error GoTo ADOBackUpError
    
830    Set cn = New Connection
840    cn.Open sConnectionString
850    cn.CommandTimeout = 0
860    cn.Execute sSQL
870    cn.Close
880    Set cn = Nothing
890    ADOBackUp = True
    
900    Exit Function

ADOBackUpError:
910    Err.Raise Err.Number, Err.Source, Err.Description
920    ADOBackUp = False
930    Exit Function

End Function


Public Function ADORestore(ByVal sDBName As String, _
                                ByVal sPath As String, _
                                ByVal sServer As String) As Boolean
Dim cn As Connection
Dim sConnectionString As String
Dim sSQL As String

    'preparing strings
 940     sConnectionString = CONNECTION_STRING &  "Initial Catalog=master;Data Source="  & sServer
 950     sSQL =  "RESTORE DATABASE "  & sDBName &  " FROM DISK  = '" & sPath & "' WITH REPLACE" 
                    
 960     On Error GoTo ADORestoreError
    
 970     Set cn = New Connection
 980     cn.CommandTimeout =  0 
 990     cn.Open sConnectionString
 1000     cn.Execute sSQL
 1010     cn.Close
 1020     Set cn = Nothing
 1030     ADORestore = True
    
 1040     Exit Function

ADORestoreError:
 1050     Err.Raise Err.Number, Err.Source, Err.Description
 1060     ADORestore = False
 1070     Exit Function

End Function

...
Рейтинг: 0 / 0
03.02.2004, 12:05:59
    #32396362
Hibernate
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поооомооооогиииитееее, плииииз!!!!!!!!!
2boevik:

Вау!!! давно не видел нумерации строк исходника! А в чем прикол их использования? Не лень?
...
Рейтинг: 0 / 0
03.02.2004, 12:29:54
    #32396427
Con
Con
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поооомооооогиииитееее, плииииз!!!!!!!!!
Boevik, спасибо большое. Вы мне жизнь спасли:-)
А я пытался через ХП написать и нифига.

С уважением,
Константин
...
Рейтинг: 0 / 0
03.02.2004, 14:21:50
    #32396709
# Darth Vader #
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поооомооооогиииитееее, плииииз!!!!!!!!!
>ау!!! давно не видел нумерации строк исходника! А в чем прикол их использования? Не лень?

У меня ностальджи по моему 11 - ому классу.
...
Рейтинг: 0 / 0
05.02.2004, 12:51:58
    #32399186
marvan
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поооомооооогиииитееее, плииииз!!!!!!!!!
Eternalау!!! давно не видел нумерации строк исходника! А в чем прикол их использования? Не лень?
Это не лень, - очень похоже на результат работы утилиты по автоматической втавке обработки ошибок
...
Рейтинг: 0 / 0
05.02.2004, 14:34:08
    #32399418
boevik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поооомооооогиииитееее, плииииз!!!!!!!!!
Hibernate Вау!!! давно не видел нумерации строк исходника! А в чем прикол их использования? Не лень?
Конечно же не вручную я прописываю номера строк.
А прикол в обработке ошибок.
К примеру:
Код: plaintext
1.
2.
3.
4.
ADORestoreError:
 1050     MsgBox  "Еrror at line "  & Erl
 1060     ADORestore = False
 1070     Exit Function

Таким образом, я знаю точно в какое строке произошел сбой
...
Рейтинг: 0 / 0
05.02.2004, 15:33:51
    #32399573
andreiy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поооомооооогиииитееее, плииииз!!!!!!!!!
Зачем огород городить!
Делаешь batник и все....
Подробно:
Создается *.txt с текстом

REM це бекап
Copy MyDb.mdb BackUpOfMyDb.mdb
REM если оно надо, то
msacces.exe MyDb.mdb /compact
REM Можно вместо двух предыдущих строк написать msacces.exe MyDb.mdb /compact BackUpOfMyDb.mdb
msacces.exe MyDb.mdb /repair


меняешь расширение на *.bat и запускаешь!
Если несколько Офисов установлено прописывешь полный путь к Access, только в MS-DOS, т.е C:\Progra~1....и.тд
...
Рейтинг: 0 / 0
05.02.2004, 16:14:41
    #32399678
boevik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поооомооооогиииитееее, плииииз!!!!!!!!!
andreiy, вы ошиблись. Речь идет об SQL Server, а не про Access.
А SQL Server свои файлы запирает так, что и скопировать нельзя.
...
Рейтинг: 0 / 0
05.02.2004, 16:22:40
    #32399708
andreiy
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поооомооооогиииитееее, плииииз!!!!!!!!!
да....тормознул...
Но неужели SQL Server не поддерживает работу с командной строки.....Неверю...У меня, к сожалению, нет документации...
...
Рейтинг: 0 / 0
05.02.2004, 17:16:48
    #32399838
boevik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поооомооооогиииитееее, плииииз!!!!!!!!!
andreiy навел меня на мысль, что можно обойтись и командной строкой.
Будет это выглядить так:
Код: plaintext
osql -Uuser -Ppassword -Sserver -Q "BACKUP DATABASE databasename TO DISK  = 'c:\backup' WITH INIT, DESCRIPTION = 'Description', NAME = 'NameBackup'" 
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
28.06.2005, 12:20:35
    #33137972
Focus_NEW
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поооомооооогиииитееее, плииииз!!!!!!!!!
Доброе время суток.
Я поповоду восстановления БД из VB, и нетолько из него.
Проблема в том что если к Базе кто-то подключен в тот момент когда я хочу ее восстановить, то SQL ругается на экслюзивный доступ к этой самой базе. Может есть функция которая рубит все коннеты, или еще что-нибудь, чтобы бороться с такой траблой.
...
Рейтинг: 0 / 0
28.06.2005, 13:14:15
    #33138184
_bob
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поооомооооогиииитееее, плииииз!!!!!!!!!
Focus_NEWДоброе время суток.
Я поповоду восстановления БД из VB, и нетолько из него.
Проблема в том что если к Базе кто-то подключен в тот момент когда я хочу ее восстановить, то SQL ругается на экслюзивный доступ к этой самой базе. Может есть функция которая рубит все коннеты, или еще что-нибудь, чтобы бороться с такой траблой.

в mssql такой штуки нет, но все коннекты убить можно, перебирая их по одному
...
Рейтинг: 0 / 0
28.06.2005, 13:15:08
    #33138192
_bob
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поооомооооогиииитееее, плииииз!!!!!!!!!
boevikandreiy навел меня на мысль, что можно обойтись и командной строкой.
Будет это выглядить так:
Код: plaintext
osql -Uuser -Ppassword -Sserver -Q"BACKUP DATABASE databasename TO DISK  = 'c:\backup' WITH INIT, DESCRIPTION = 'Description', NAME = 'NameBackup'"


а зачем это делать из командной строки, если восстанавливать базу должна программа?
...
Рейтинг: 0 / 0
11.07.2005, 10:08:11
    #33158722
ziktuw
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поооомооооогиииитееее, плииииз!!!!!!!!!
Восстанавливать базу из проги - идея неразумная, поскольку при восстановлении случается дофига нюансов. Поэтому восстановление должно быть только в ручном режиме подготовленным пользователем (админом), способным правильно интерпретировать системные сообщения и произвести соотв. корректировки.

Тем не менее, отрубить всех от базы можно через команду
ALTER DATABASE <your_database> SET SINGLE USER WITH ROLLBACK IMMEDIATE

А потом еще не забыть самому с нее уйти через "USE master"


-------
SET NOCOUNT, без балды, сбережет вас от беды!
...
Рейтинг: 0 / 0
13.07.2005, 04:22:13
    #33162478
Magnus23
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поооомооооогиииитееее, плииииз!!!!!!!!!
DibrovВосстанавливать базу из проги - идея неразумная, поскольку при восстановлении случается дофига нюансов. Поэтому восстановление должно быть только в ручном режиме подготовленным пользователем (админом), способным правильно интерпретировать системные сообщения и произвести соотв. корректировки.

Абсолютно согласен. Я как-то повелся на уговоры и сделал эти фичи в одном проэкте... ПОтом самому дороже выйдет. Обязательно найдется безголовый юзер который воостановит не то или сбекапит нетуда, а в потере данных, в таком случае, удобнее всего обвинить автора.
...
Рейтинг: 0 / 0
13.07.2005, 11:30:59
    #33162919
big-duke
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поооомооооогиииитееее, плииииз!!!!!!!!!
4_BOB По поводу убивания коннектов.
Вот сваял для себя такую SP
se master
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO


CREATE procedure _Kill_Base_Connections @BaseName nvarchar(500) as

declare @ProcID int,@strSQL nvarchar(500)
declare kill_cursor Cursor for
select spid from master.dbo.[sysprocesses] where db_name(dbid) in (@BaseName)
open kill_cursor
FETCH NEXT FROM kill_cursor INTO @procid

WHILE @@FETCH_STATUS = 0
BEGIN
set @strSQL= 'Kill ' + cast(@ProcID as nvarchar(500))
exec sp_executesql @strSQL
FETCH NEXT FROM kill_cursor INTO @procid

END

CLOSE kill_cursor
DEALLOCATE kill_cursor



GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Поооомооооогиииитееее, плииииз!!!!!!!!! / 17 сообщений из 17, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]