Главная страница
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.012 c
1-49019
qwerty2
2003-01-07 16:56
2003.01.16
Обойти все Control ы на форме


3-48866
Eugene_S
2002-12-19 11:07
2003.01.16
Метод Seek -объявил забостовку (else сыканул)


3-48940
Che
2002-12-20 02:07
2003.01.16
DBComboBox


6-49194
NONAME00
2002-11-16 13:23
2003.01.16
Как узнать по локальной сети...


3-48883
Chery
2002-12-20 10:27
2003.01.16
Установка SyBase