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

Заранее ОГРООООООООМНОЕ спасибо!!!!!!!!
С уважением,
Константин
...
Рейтинг: 0 / 0
Поооомооооогиииитееее, плииииз!!!!!!!!!
    #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
Поооомооооогиииитееее, плииииз!!!!!!!!!
    #32396362
Hibernate
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2boevik:

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

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

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

Таким образом, я знаю точно в какое строке произошел сбой
...
Рейтинг: 0 / 0
Поооомооооогиииитееее, плииииз!!!!!!!!!
    #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
Поооомооооогиииитееее, плииииз!!!!!!!!!
    #32399678
boevik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
andreiy, вы ошиблись. Речь идет об SQL Server, а не про Access.
А SQL Server свои файлы запирает так, что и скопировать нельзя.
...
Рейтинг: 0 / 0
Поооомооооогиииитееее, плииииз!!!!!!!!!
    #32399708
andreiy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
да....тормознул...
Но неужели SQL Server не поддерживает работу с командной строки.....Неверю...У меня, к сожалению, нет документации...
...
Рейтинг: 0 / 0
Поооомооооогиииитееее, плииииз!!!!!!!!!
    #32399838
boevik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
andreiy навел меня на мысль, что можно обойтись и командной строкой.
Будет это выглядить так:
Код: plaintext
osql -Uuser -Ppassword -Sserver -Q "BACKUP DATABASE databasename TO DISK  = 'c:\backup' WITH INIT, DESCRIPTION = 'Description', NAME = 'NameBackup'" 
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Поооомооооогиииитееее, плииииз!!!!!!!!!
    #33137972
Focus_NEW
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Доброе время суток.
Я поповоду восстановления БД из VB, и нетолько из него.
Проблема в том что если к Базе кто-то подключен в тот момент когда я хочу ее восстановить, то SQL ругается на экслюзивный доступ к этой самой базе. Может есть функция которая рубит все коннеты, или еще что-нибудь, чтобы бороться с такой траблой.
...
Рейтинг: 0 / 0
Поооомооооогиииитееее, плииииз!!!!!!!!!
    #33138184
Фотография _bob
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Focus_NEWДоброе время суток.
Я поповоду восстановления БД из VB, и нетолько из него.
Проблема в том что если к Базе кто-то подключен в тот момент когда я хочу ее восстановить, то SQL ругается на экслюзивный доступ к этой самой базе. Может есть функция которая рубит все коннеты, или еще что-нибудь, чтобы бороться с такой траблой.

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


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

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

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


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

Абсолютно согласен. Я как-то повелся на уговоры и сделал эти фичи в одном проэкте... ПОтом самому дороже выйдет. Обязательно найдется безголовый юзер который воостановит не то или сбекапит нетуда, а в потере данных, в таком случае, удобнее всего обвинить автора.
...
Рейтинг: 0 / 0
Поооомооооогиииитееее, плииииз!!!!!!!!!
    #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
17 сообщений из 17, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Поооомооооогиииитееее, плииииз!!!!!!!!!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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