![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Диалог создания строки соеденения в 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 представлен в исходных кодах.