请问如何在运行期,而不是设计期,打开可视化ConnectionString的那个界面.

解决方案 »

  1.   

    见意你使用udl,使用它可以在运行期改变连结
      

  2.   

    udl?不知道是什么列,可否告知.
      

  3.   

    udl其实是ini文件最简单的建立办法,把一个空白的文本文档的后缀改为udl,你就可以知道什么是udl文件了,然后再改成ini,你就可以知道UDL和INI文件有多少联系了。
      

  4.   

    哦,我知道你的意思了,我是用的INI保存的连接字符串,可是我看见我同学的程序里面在运行期动态的打开了那个可视界面,并且通过那个可视界面可以返回一个连接字符串,我只是想学习这种方法,他没有完全告诉我,只是提示要用到OLE.
      

  5.   

    delphi有一个自动带的例程打开了连接字符串
    好像是ADOTEST
    自已看下吧
      

  6.   

    我记得好像要调用一个API函数。具体忘记了,不好意思^_^
      

  7.   

    是C:\Program Files\Common Files\System\OLE DB\Data Links\DBDemos.udl这个文件
    把ADOCONNECTION的Provider改为上面这个文件就可以啦。。
      

  8.   

    我直接运行DBDEMOS.udl这个文件出现了那个连接数据库的对话框,问题在程序中怎么运行它呢,如tanlijun37(tlj)说的将ADOCONNECTION的Provider设置为C:\Program Files\Common Files\System\OLE DB\Data Links\DBDemos.udl这个字符传后怎么怎么触发出那个对话框如何才能从那个对话框里得到那个连接字符串呢?
      

  9.   

    找到点资料,但是看不太明白
    可以使用UDL文件,UDL文件到打开方式是:
    Rundll32.exe C:\PROGRA~1\COMMON~1\System\OLEDB~1\oledb32.dll,OpenDSLFile %1uses ADODB;然后使用函数:PromptDataSource即可,该函数原型如下:uses
      OleDb,ComObj,ActiveX;function PromptDataSource(ParentHandle: THandle; InitialString: WideString): WideString;
    var
      DataInit: IDataInitialize;
      DBPrompt: IDBPromptInitialize;
      DataSource: IUnknown;
      InitStr: PWideChar;
    begin
      Result := InitialString;
      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);
        Result := InitStr;
      end;
    end;
      

  10.   

    你去看看《你安装的目录\Borland\Delphi6\Source\Property Editors》目录下的文件:AdoConEd.pas。打开他就知道怎么弄了。
      

  11.   

    前面有人已经提示我用PromptDataSource这个函数了,可是我奇怪的是,DP帮助里面怎么找不到这个函数的说明