| 
| 
 | Вопрос # 605/ вопрос открыт / | 
 |  Здравствуйте, уважаемые эксперты!Как реализовать Установление соединения программно по технологии ADO (т.е. не в окне Инспектора объектов,а в запущенном приложении вызвать такое же диалоговое окно как при двойном щелчке на свойстве ConnectionString компонента ADOConnection)?
 Nata
 
|  |   Вопрос задала: Наташа (статус: Посетитель)Вопрос отправлен: 29 мая 2007, 07:56
 Состояние вопроса: открыт, ответов: 1.
 |  Ответ #1. Отвечает эксперт: Вадим К Здравствуйте, Наташа!Первое окно (где предлагают нажать кнопку для вызова редактора или указать готовый файл) - делфовское. Другое - это уже виндовсовское.
 Как вызвать - долго рассказывать, но подтолкну к поиску решения. Открываем в делфи файл по пути
 C:\program files\Borland\Delphi\source\Property Editors\ADOCOnEd.pas
 с этим файлом связана форма, которую вы наверно узнаете.
 Наибольше нас здесь будет интересовать строка
 ConnectionString.Text := PromptDataSource(Handle, ConnectionString.Text);
 Сама функция PromptDataSource приведёт нас в папку  Source\vcl\ADODB.pas где вы и найдёте её. Я думаю, посмотревши на эти файлы, вы поймёте что к чему. Если нет - кричите, подскажем дальше.
 
 Пути возможно надо подкоректировать, так как я не имею представления какая версия делфи у вас установлена.
 
|  | Ответ отправил: Вадим К (статус: Академик)Время отправки: 29 мая 2007, 11:09
 Оценка за ответ: 5
 Комментарий к оценке: Огромное спасибо. Все работает. Только вот к сожалению пароль хранится в открытом виде. |  
 Мини-форум вопросаВсего сообщений: 2; последнее сообщение — 30 мая 2007, 13:35; участников в обсуждении: 2. 
|   | Вадим К (статус: Академик), 29 мая 2007, 11:13 [#1]:подумал. на всяк случай, вот готовый вариант решения. в uses добавляем ADODB; и пишем обработчкик для кнопарика procedure TForm1.Button1Click(Sender: TObject);
 var s:string;
 begin
 s:=PromptDataSource(Application.MainForm.Handle,s);
 ShowMessage(s);
 end;
 где s - вначале исходная строка подключения, может быть и пустой.
 Галочка "подтверждения прочтения" - вселенское зло. |  
|   | Venom (статус: 1-ый класс), 30 мая 2007, 13:35 [#2]:Вероятно, проще создать файл с названием, например MainBase.udl (главное чтоб расширение осталось "udl") и по нажатию кнопочки на форме вызывать его при помощи ShellExecute. В результате получишь то, что надо.
 |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |