Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.11.04;
Скачать: CL | DM;

Вниз

Получить список всех баз данных   Найти похожие ветки 

 
Vlad2   (2002-10-15 13:20) [0]

Эдравствуйте !
Как получить список всех баз данных сервера mssql2000 средствами ado в delphi6 ? Конечно, нужно использовать TADOConnection. Но не могу найти, как. Подскажите, кто знает.


 
Best Before 2024   (2002-10-15 13:33) [1]

Stored Procedure sp_helpdb
exec sp_helpdb



 
Vlad2   (2002-10-15 13:44) [2]

> Best Before 2024
Это так, а как быть, если использовать sp сервера нельзя ?
Соединение с сервером проходит даже если в строке connectionString не указывать имя БД, - для данного UserName значение устанавливается в соответствии с настройками. Список баз, кажется, нужно искать в adoConnection, но вот в adoConnection.Properties и свойств таких нет.


 
Vlad2   (2002-10-15 14:06) [3]

Вдогонку:
по умолчанию sp_helpdb разрешена на выполнение для роли public, но не все администраторы одинаково полезны. Пользователь всё равно не получит доступа (лояльным способом) к запрещенным объектам, но нужно видеть какой-то список на клиенте.


 
SergSuper   (2002-10-15 14:09) [4]

select * from master..sysdatabases ?

Мне кажется стандартными методами узнать не получится. Даже если это есть в АДО, не факт что реализовано в VCL


 
Best Before 2024   (2002-10-15 14:15) [5]

>>Это так, а как быть, если использовать sp сервера нельзя?
Кто запретил?!


 
Vlad2   (2002-10-15 14:18) [6]

> SergSuper
Грустно. Получается, что можно узнать только БД по умолчанию.


 
Vlad2   (2002-10-15 14:22) [7]

> Best Before 2024 (15.10.02 14:15)
Ну, сбросил флажок "EXEC" для ServerName.master.sp_helpdb и с других по своему усмотрению.



 
Best Before 2024   (2002-10-15 14:26) [8]

А если диск отформатируют - тоже работать должно.
Программа должна выставлять некие требования и заставлять пользователей их соблюдать.


 
Vlad2   (2002-10-15 14:33) [9]

> Best Before 2024
Вы правы, просто я хочу предусмотреть, по возможности, все обстоятельства. Конечно, sp_helpdb использовать придется, но подозреваю, что список баз данных можно достать из TADOConnection.


 
SergSuper   (2002-10-15 14:52) [10]

Вдогон
по умолчанию sp_helpdb разрешена на выполнение для роли public, но не все администраторы одинаково полезны. Пользователь всё равно не получит доступа (лояльным способом) к запрещенным объектам, но нужно видеть какой-то список на клиенте.

Дык тогда и АДО не получит доступа :) Откуда ж Вы думаете она узнаёт список баз?


 
sniknik ©   (2002-10-15 14:57) [11]

Vlad2 (15.10.02 14:33) - но подозреваю,...
скорее всего правильно подозреваеш
смотри получение схем
ADOConnection1.OpenSchema();
у него есть параметры вызова
siDBInfoKeywords
siDBInfoLiterals
может это то и есть. но разбиратся тебе самому придется этого я не использовал, (ограничивался данными о полях без открытия датасета).
SergSuper (15.10.02 14:52) естественно если у ADO нет доступа ничего не выйдет.


 
Vlad2   (2002-10-15 15:08) [12]

> SergSuper (15.10.02 14:52)
Я проверил: запретил выполнение sp_helpdb и соединился с сервером.

> sniknik
OpenSchema(); ? Кажется путь здесь. Спасибо.


 
sniknik ©   (2002-10-15 15:11) [13]

напиши как разберешся. пригодится. (может быть)


 
Vlad2   (2002-10-15 15:18) [14]

> sniknik
Если сегодня не успею (рабочий день у нас закончился), то завтра в этой же ветке.


 
sniknik ©   (2002-10-15 15:22) [15]

договорились. можеш и на почту сдублировать если не в лом. :-))


 
Best Before 2024   (2002-10-15 15:58) [16]

ADOConnection1.OpenSchema(siCatalogs, EmptyParam, EmptyParam, ADODataSet1);
while not ADODataSet1.Eof do
begin
DBName := ADODataSet1["CATALOG_NAME"];
ADODataSet1.Next;
end;

Но это все тот же список БД


 
sniknik ©   (2002-10-15 16:09) [17]

ну и что?
ADOConnection1.OpenSchema(siColumns, VarArrayOf([Unassigned, Unassigned, SelectedTable, Unassigned]), EmptyParam, FieldSchema);
информация о полях таблици.
предлагалось проверить
siDBInfoKeywords
siDBInfoLiterals
а возможных схем гораздо больше. практически информация обо "всем". так что пусть работает.



 
sniknik ©   (2002-10-15 16:18) [18]

Best Before 2024 - сори я сначала не понял. это именно то что надо. средствами ADO (без селекта) и именно как в вопросе стояло.


 
Vlad2   (2002-10-16 06:27) [19]

Ребята, жизнь прекрасна. Спасибо.
OpenSchema(siCatalogs, ...) - то, что надо.
> sniknik : я Вам там почту послал.



Страницы: 1 вся ветка

Текущий архив: 2002.11.04;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.027 c
3-11121
Roma111
2002-10-16 11:40
2002.11.04
Обработка Exception


14-11443
vopros
2002-10-10 11:57
2002.11.04
Когда нам дадут медаль?


1-11175
MixerPro
2002-10-21 13:32
2002.11.04
Как определить платформу ОС ?


7-11494
Sergserg
2002-08-28 18:36
2002.11.04
Значек Мой компьютер


4-11538
Velocity
2002-09-19 18:07
2002.11.04
EnumProcesses