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

Вниз

Как получить имя рабочей станции и имя серсера БД   Найти похожие ветки 

 
JurMax ©   (2002-12-21 01:33) [0]

Приложение написано на Delthi6. СУБД - MSSQLServer-2000. Связь через ADO. Я хочу программно сформировать строку соединения Connectionstring компонента ADOConnection. Для этого надо получить имя рабочей станции и имя серсера БД (естественно еще до соединения с базой). Как это сделать?


 
asmith   (2002-12-21 16:46) [1]

Можно соединиться с MSSQL2000 и без имени рабочей станции. А вот имя сервера и базы данных нужны. Мы решили проблему таким образом. На форме диалога LoginDialog разместили комбобокс DatabaseAlias, едиты UserLogin, Password и еще одну кнопочку Configuration, нажатие на которую открывает одноименный диалог. В нем имеется пара комбобоксов Servers, Databases, едит UserLogin, чека TrustedConnection и кнопки New, Modify, Close. При запуске список Servers заполняется списком найденных в сети SQL-серверов, выбор конкретного сервера форсирует заполнение списка Databases списком всех баз на выбранном сервере. Делаем это все с использованием SQLDMO, достаточно тривиальная задача. Далее заполняем UserLogin, Password с учетом TrustedConnection и сохраняем это в реестре (HKEY_CURRENT_USER) в именованной ветке. Имя для этой ветки вносим при сохранении всего введенного и рассматриваем как DatabaseAlias (BDE). При загрузке LoginDialog выбираем из списка ранее подготовленные DatabaseAlias (или жмем Configuration и добавляем новое соединение), если нужно можем подправить UserLogin, Password и соединяемся с сервером. А если задано TrustedConnection - вообще не загружаем LoginDialog. Достаточно удобно. Есть еще способ, основанный на использовании MS Data Link - смотри сорсы модуля ADODB.PAS и разбирайся, как в Борланде строят строку соединения этим способом.


 
JurMax ©   (2002-12-21 23:43) [2]

Спасибо за подробную информацию. Но я с базами данных начал работать недавно. Может быть бросите код, при помощи которого формируется список серверов?


 
sniknik ©   (2002-12-22 03:43) [3]

зарегистрированных или доступных?

а впрочем, выбирай.


var
oNames: OleVariant;
oSQLApp: OleVariant;
i,j: Integer;
begin
Memo1.Lines.Clear;
oSQLApp:=CreateOleObject("SQLDMO.Application");
oNames:= oSQLApp.ListAvailableSQLServers;
For i:= 1 To oNames.Count do
Memo1.Lines.Add(oNames.Item(i));

Memo1.Lines.Add("");

for i:=1 to oSQLApp.ServerGroups.Count do
begin
for j:=1 to oSQLApp.ServerGroups.item(i).RegisteredServers.Count do
Memo1.Lines.Add((oSQLApp.ServerGroups.item(i).RegisteredServers.Item(j).Name));
end;

oSQLApp:= Unassigned;
end;



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

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

Наверх




Память: 0.47 MB
Время: 0.025 c
4-49342
^Sanya
2002-11-28 21:14
2003.01.16
?


3-48848
Weare
2002-12-23 14:00
2003.01.16
Excel и Delphi


7-49336
KDS
2002-11-04 17:14
2003.01.16
Win2000 Server Shutdown


1-49078
gorv
2003-01-04 22:57
2003.01.16
Sohranenie TLIST v file


3-48915
OlkaGTS
2002-12-05 16:59
2003.01.16
Автоматическое заполнение поля-идентификатора в InterBase