powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как обойти заблоченные базы...
16 сообщений из 16, страница 1 из 1
Как обойти заблоченные базы...
    #33825063
Мой макрос в Excel запрашивает данные о базе в SQL Server выглядет это так:
Connection = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=True;User ID=Name;Initial Catalog=database;Data Source=NameServ"
With ActiveSheet.QueryTables.Add(Connection:="OLEDB;" & Connection, Destination:=Range("A5"))
.CommandType = xlCmdSql
.CommandText = "exec sp_helpdb"
.Name = "mydata"
.FieldNames = False
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = False
.RefreshOnFileOpen = False
.BackgroundQuery = True
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = False
.RefreshPeriod = 0
.PreserveColumnInfo = True
.Refresh BackgroundQuery:=False
End With

...он должен выводить данные по всем базам, но некоторые базы находятся в off и выводит ошибку не выполняя до конца!!!
КАК МНЕ ОБОЙТИ БАЗЫ КОТОРЫЕ НАХОДЯТСЯ В OFF???
...
Рейтинг: 0 / 0
Как обойти заблоченные базы...
    #33825117
Melkiades
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
select name from master.dbo.sysdatabases where status not in(...)

Где возможные статусы:
1 = autoclose;
4 = select into/bulkcopy;
8 = trunc. log on chkpt;
16 = torn page detection,
32 = loading.
64 = pre recovery.
128 = recovering.
256 = not recovered.
512 = offline;
1024 = read only;
2048 = dbo use only;
4096 = single user;
32768 = emergency mode.
4194304 = autoshrink.
1073741824 = cleanly shutdown.
...
Рейтинг: 0 / 0
Как обойти заблоченные базы...
    #33826957
Urfen_Djus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чего-то он мне на 'name' ругается...что там надо???
...
Рейтинг: 0 / 0
Как обойти заблоченные базы...
    #33826989
Melkiades
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В квадратные скобки name возьмите.
...
Рейтинг: 0 / 0
Как обойти заблоченные базы...
    #33827001
Urfen_Djus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И так ругается!!! name - Это имя базы или серва???
...
Рейтинг: 0 / 0
Как обойти заблоченные базы...
    #33827113
Melkiades
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Базы ессно. Текст ошибки мы должны угадать?
Где и как вы выполняете этот запрос?
...
Рейтинг: 0 / 0
Как обойти заблоченные базы...
    #33827256
Urfen_Djus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При подключении к серверу он выводит ошибку что к базе <имя базе> нет доступа и останавливает все подключение не выводя ничего, а хочу что бы он пропускал базу котороя находится в off и чтобы он вывел действующие базы...
Вот что у меня происходит
С уважением
b@ron fon HELLm@n de Urfen_Dju$®
...
Рейтинг: 0 / 0
Как обойти заблоченные базы...
    #33827289
Melkiades
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так у вас же в строке подключения явно прописано: Initial Catalog=database. И если эта database находится в оффлайне, то естественно вы к ней подключиться не сможете! Подключайтесь к master и выполняйте приведенный мной запрос, чтобы получить список доступных баз.
...
Рейтинг: 0 / 0
Как обойти заблоченные базы...
    #33827325
Urfen_Djus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
        Connection = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=True;User ID=sa;Initial Catalog=master;Data Source=IMOW"
        [color=red]Select name from master.dbo.sysdatabases where status not in( [b]512 )[/b][/color]
    With ActiveSheet.QueryTables.Add(Connection:="OLEDB;" & Connection, Destination:=Range("A5"))
        .CommandType = xlCmdSql
        .CommandText = "exec sp_helpdb"
        .Name = "mydata"
        .FieldNames = False
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = False
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = True
        .SaveData = True
        .AdjustColumnWidth = False
        .RefreshPeriod =  0 
        .PreserveColumnInfo = True
        .Refresh BackgroundQuery:=False
    End With
Он на это ругается(выделено красным) объесни пожалуйста как правильно...я не понимаю
С уважением
b@ron fon HELLm@n de Urfen_Dju$®
...
Рейтинг: 0 / 0
Как обойти заблоченные базы...
    #33827366
Melkiades
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И как, по-вашему, вот это должно было работать?
Код: plaintext
1.
2.
        Connection = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=True;User ID=sa;Initial Catalog=master;Data Source=IMOW"
        Select name from master.dbo.sysdatabases where status not in( 512 )

Вот как надо было:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
    Connection = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=True;User ID=sa;Initial Catalog=master;Data Source=IMOW"
    With ActiveSheet.QueryTables.Add(Connection:="OLEDB;" & Connection, Destination:=Range("A5"))
        .CommandType = xlCmdSql
        .CommandText = "Select name from master.dbo.sysdatabases where status not in(512)"
        .Name = "mydata"
        .FieldNames = False
        .RowNumbers = False
        .FillAdjacentFormulas = False
        .PreserveFormatting = False
        .RefreshOnFileOpen = False
        .BackgroundQuery = True
        .RefreshStyle = xlInsertDeleteCells
        .SavePassword = True
        .SaveData = True
        .AdjustColumnWidth = False
        .RefreshPeriod =  0 
        .PreserveColumnInfo = True
        .Refresh BackgroundQuery:=False
    End With
...
Рейтинг: 0 / 0
Как обойти заблоченные базы...
    #33827371
Urfen_Djus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извените я просто не так долго программирую в среде VB поэтому бывают у меня и косяки =)
С уважением
b@ron fon HELLm@n de Urfen_Dju$®
...
Рейтинг: 0 / 0
Как обойти заблоченные базы...
    #33827437
Urfen_Djus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Опять косяк!!!Базы тоон выводит, но только имена, а нужно еще и др. инфу!!!
С уважением
b@ron fon HELLm@n de Urfen_Dju$®
...
Рейтинг: 0 / 0
Как обойти заблоченные базы...
    #33827471
Melkiades
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так вы же спрашиваете только имена баз - вот он вам их и выводит.
Если нужно что-то еще - пишите, что конкретно вам нужно. Можете вот так:

Код: plaintext
Select * from master.dbo.sysdatabases where status not in ( 512 )
...
Рейтинг: 0 / 0
Как обойти заблоченные базы...
    #33827497
Urfen_Djus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасиба большое!!!Чтоб я без вас делал =)))
С уважением
b@ron fon HELLm@n de Urfen_Dju$®
...
Рейтинг: 0 / 0
Как обойти заблоченные базы...
    #33827554
Melkiades
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вероятно, книжки бы читали...
...
Рейтинг: 0 / 0
Как обойти заблоченные базы...
    #33827757
Urfen_Djus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну да или хелпы...=)))
С уважением
b@ron fon HELLm@n de Urfen_Dju$®
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Как обойти заблоченные базы...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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