Mega Code Archive

 
Categories / Delphi / System
 

Let build Windows an ADO connection string

Title: let build Windows an ADO connection string? {I see always people manually building the connection string. Wy not use the dialog that windows provide for us ? Of course it is possible to use the PromptDataSource in ADODB, but this give not the opportunity to see if the user has pressed OK or Cancel, so we dont know when to save the changes. So I use this code instead. I hope it benefit many people. Rgds, Wilfried} uses OleDB, ComObj, ActiveX; 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;