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