Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Диалог создания строки соеденения в ADOConnection [D7, MSSQL]


Ярослав ©   (2005-06-08 08:40:00) 

Подскажите как вызвать диалог создания строки соеденения (тот который появляется при двойном клике на компоненте) у ADOConnection из программы


dmitry501   (2005-06-08 11:41:00) [1]

Ярослав   (08.06.05 11:08) [10]
Сохраняй в файл
AdoConnection.ConnectionString
он уже в unicode. Это и есть .udl файл.


Vit@ly   (2005-06-08 11:33:00) [2]

Если я правильно понял вопрос, то автор спрашивает об этом:
uses
 ComObj, ActiveX, StdCtrls;
function ADOConnectionString(ParentHandle: THandle; InitialString: WideString;
 out NewString: string): Boolean;
var
 DataInit: IDataInitialize;
 DBPrompt: IDBPromptInitialize;
 DataSource: IUnknown;
 InitStr: PWideChar;
begin
 Result   := False;
 DataInit := CreateComObject(CLSID_DataLinks) as IDataInitialize;
 if InitialString <> '' then
   DataInit.GetDataSource(nil, CLSCTX_INPROC_SERVER, PWideChar(InitialString),
     IUnknown, DataSource);
 DBPrompt := CreateComObject(CLSID_DataLinks) as IDBPromptInitialize;
 if Succeeded(DBPrompt.PromptDataSource(nil, ParentHandle,
   DBPROMPTOPTIONS_PROPERTYSHEET, 0, nil, nil, IUnknown, DataSource)) then
 begin
   InitStr := nil;
   DataInit.GetInitializationString(DataSource, True, InitStr);
   NewString := InitStr;
   Result    := True;
 end;
end;


sniknik   (2005-06-08 11:26:00) [3]

ShellExecute(Handle, 'open', 'D:\Udl.Udl', nil, nil, SW_SHOWNORMAL);


Ярослав   (2005-06-08 11:08:00) [4]

Выяснил, нормальный файл в Unicode, но может всетаки есть функция у ADO, для этого дела?


Ярослав   (2005-06-08 11:05:00) [5]

ОК получилось, а как потом результат сохранить в файл UDL, для последующего соеденения без этого диалога, пробовал просто сохранять в файл то что находиться в ConnectionString, но появляется ошибка "Недопустимый составной файл..."
Посмотрел файл отличается от ранее правильным методим созданного, исправил, файлы получаются идентичные но ошибка таже.
В чем тут дело?


вп   (2005-06-08 10:49:00) [6]

DS := PromptDataSource(Application.Handle, '');
Модуль, кажись, ADODB


dmitry501   (2005-06-08 10:11:00) [7]

Ярослав   (08.06.05 10:03) [6]
В Delphi в меню жмешь Search-Find in Files
Ставишь Where-Search in directories
В file mask пишешь C:\Program Files\Borland\Delphi7 или жмешь Browse и указываешь, где находится Delphi. Ждешь пока завершится поиск и внизу юудет написано.
C:\Program Files\Borland\Delphi7\Source\Property Editors\AdoConEd.pas(40): function EditConnectionString(Component: TComponent): Boolean;


Ярослав   (2005-06-08 10:03:00) [8]

> dmitry501 ©   (08.06.05 09:38) [5]
А в каком модуле находиться EditConnectionString


dmitry501   (2005-06-08 09:38:00) [9]

EditConnectionString(ИмяAdoConnection)


ryds   (2005-06-08 09:37:00) [10]

да че ты мучаешься? конекться ч/з UDL - гораздо удобней и гибче...


Ярослав   (2005-06-08 09:28:00) [11]

> Anatoly Podgoretsky ©   (08.06.05 09:03) [1]
А нельзя ли по конкретней?


ryds   (2005-06-08 09:14:00) [12]

создаешь UDL, и открываешь его из своей проги обычным shellexecute


Anatoly Podgoretsky   (2005-06-08 09:03:00) [13]

ADOConnection представлен в исходных кодах.


Наверх

Титульная страница Поиск, карта сайта Написать письмо