Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.01 c
14-49245
Андрусь
2002-12-26 11:29
2003.01.16
Как работать с форматом ASN.1


1-49142
lipskiy
2003-01-05 18:41
2003.01.16
Как работать с фреймами?


1-49113
PONTIY
2003-01-05 10:56
2003.01.16
Ячейки DBGrid без фокуса


4-49350
SmallVS
2002-11-27 12:06
2003.01.16
Прозрачное меню


1-48966
Сергей Макаров
2003-01-04 16:27
2003.01.16
Работа с ini файлами




   Наверх