Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как получить список имен доступных серверов и список баз данных [D5, MSSQL]


Страницы:   1 2

Ромн ©   (2003-01-20 17:15:00) 

Субж.
То есть, есть несколько mssql серверов, на них живут по несколько баз, как мне получить сначала имена этих серверов, а потом соответственно имена баз. Все это нужно конечно чтобы составить строку подключения для ado.

Огромное спасибо.


asmith   (2003-01-20 18:07:00) [21]

С помощью SQLDMO:
var
FDMOApplication : Variant;
Names : Variant;
i : integer;
begin
try
FDMOApplication := CreateOleObject("SQLDMO.Application");
Names := FDMOApplication.ListAvailableSQLServers;
for i:= 1 to Names.Count do
lbServers.Items.Add(Names.Item(i));
finally
FDMOApplication := Null;
end;
end;
Здесь в combo box lbServers добавляется список найденных в сети MSSQL-серверов. Необходимое условие - инсталлированный клиент MSSQL.


sniknik   (2003-01-20 18:02:00) [22]

похоже вы о разных вещах говорите

function TDMod.GetSQLServers(ServersItems: TStrings): boolean;
var NameList, Application: OleVariant;
i:Integer;
begin
result:= false;
try
try
Application:= CreateOleObject("SQLDMO.Application");
NameList:= Application.ListAvailableSQLServers;
For i:= 1 to NameList.Count do
ServersItems.Add(NameList.Item(i));
result:= true;
except
on E: Exception do DoIfError(E.Message);
end;
finally
NameList:=Unassigned;
Application:=Unassigned;
end;
end;

{2 метода один закомментарен}
function TDMod.GetSQLDatabases(ServerName: String; BasesItems: TStrings): boolean;
{
//получение баз через ADO
var DBName: string;
begin
ADOConnection1.OpenSchema(siCatalogs, EmptyParam, EmptyParam, ADODataSet1);
while not ADODataSet1.Eof do
begin
DBName := ADODataSet1["CATALOG_NAME"];
MessageBox(0, PChar(DBName), "Warning", MB_OK);
ADODataSet1.Next;
end;
end;
}
begin
result:= false;
try
ADOConnection1.Close;
ADOConnection1.ConnectionString:= "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=master;Data Source="+ServerName;
ADODataSet1.CommandText:= "EXEC sp_databases";
ADODataSet1.Open;
while not ADODataSet1.Eof do begin
BasesItems.Add(ADODataSet1.FieldByName("DATABASE_NAME").AsString);
ADODataSet1.Next;
end;
ADOConnection1.Close;
result:= true;
except
on E: Exception do DoIfError(E.Message);
end;
end;


но возможно тебе просто нужна одна из фенкций
EditConnectionString(ADOConnection) //модуль AdoConed
PromptDataSource(Handle, ComboBox1.Text) //модуль ADODB


Ромн   (2003-01-20 18:01:00) [23]

Хорошо, а как оттуда выдрать список баз ?


Ромн   (2003-01-20 17:51:00) [24]

Спасибо !!!


Reindeer Moss Eater   (2003-01-20 17:45:00) [25]

HKEY_LOCAL_MACHINE\Software\Microsoft\MSSQLServer\Client\ConnectTo


Ромн   (2003-01-20 17:43:00) [26]

Если можно , чуть-чуть более развернутей ?


Reindeer Moss Eater   (2003-01-20 17:26:00) [27]

Ответ прежний


Ромн   (2003-01-20 17:25:00) [28]

Я не точно выразился , как мне это полуть в во время выполнения приложения ?


Reindeer Moss Eater   (2003-01-20 17:20:00) [29]

Получи список серверов из списка зарегистрированных серверов в клиентском ПО MSSQL


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо