Показать сообщение отдельно
  #8  
Старый 12.03.2014, 15:31
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от yuoras
Опишите пожалуйста , как дать возможность пользователю с клиенским приложением самому выбирать сервер и базу данных.

Есть три сервера с разными IP но одинаковыми базами (одинаковой структурой).

Тупо было бы использовать три программы для работы всего лишь с разницей подключения баз.
Если подключение делаешь через ADO, то просто присваивай свойству ConnectionString соответствующее значение:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  ServerName, DatabaseName: String;
begin
  if InputQuery('', 'Введите имя сервера или его IP-адрес', ServerName) and
     InputQuery('', 'Введите имя базы данных', DatabaseName) then
  begin
    ADOConnection1.Close;
    ADOConnection1.ConnectionString := 'Provider=SQLOLEDB.1;Integrated Security=SSPI;'+
     'Persist Security Info=False;Initial Catalog='+DatabaseName+';Data Source='+ServerName;
    ADOConnection1.Open;
  end;
end;

// Или так:
procedure TForm1.Button2Click(Sender: TObject);
var
  ServerName, DatabaseName, User, Password: String;
begin
  if InputQuery('', 'Введите имя сервера или его IP-адрес', ServerName) and
     InputQuery('', 'Введите имя базы данных', DatabaseName) and
     InputQuery('', 'Введите имя пользователя', User) and
     InputQuery('', 'Введите пароль пользователя', Password) then
  begin
    ADOConnection1.Close;
    ADOConnection1.ConnectionString := 'Provider=SQLOLEDB.1;Password='+Password+
      ';Persist Security Info=True;User ID='+User+';Initial Catalog='+DatabaseName+
      ';Data Source='+ServerName;
    ADOConnection1.Open;      
  end;
end;
Ответить с цитированием