Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
1-49073
Оля
2003-01-08 12:00
2003.01.16
MDIForm 8...(


6-49190
Salachov
2002-11-15 22:29
2003.01.16
Народ, вот такая ситуация с авторизацией


7-49324
atmospheric
2002-11-05 01:15
2003.01.16
Кодировка в ХР


3-48892
VID
2002-12-20 12:17
2003.01.16
Загрузка данных в датасет из файла... и далее...


1-49076
Фагот
2003-01-08 15:00
2003.01.16
ComboBox с подстановкой





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский