Форум: "Базы";
Текущий архив: 2002.11.04;
Скачать: [xml.tar.bz2];
ВнизПолучить список всех баз данных Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.008 c