我看别人的程序 一个按钮 点下去就能弹出设置数据源那个窗口出来(就是双击adoconnection 然后点 build 弹出来那个设置的窗口),这样就能在程序运行时手动配置,这个是怎么做到的啊!

解决方案 »

  1.   

    uses adodb;PromptDataSource 函数
      

  2.   

    var
      Form1: TForm1;implementation
     uses adoconed;
    {$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    begin
      EditConnectionString(ADOConnection1)
    end;
    应该是楼主要的效果吧
      

  3.   

    procedure TFrmExInput.btnConClick(Sender: TObject);
    var
      strCon: string;
    begin
      strCon := '';
      ADOConn.Connected := False;
      strCon := PromptDataSource(Handle, ADOConn.ConnectionString);
       //就是这一个PromptDataSource函数了
      if strCon <> '' then
      begin
        ADOConn.ConnectionString := strCon;
        ADOConn.Connected := True;
        edtServerIP.Text := ADOConn.Properties['Data Source'].Value;
        edtServerName.Text := ADOConn.Properties['Initial Catalog'].Value;
        edtUser.Text := ADOConn.Properties['User ID'].Value;
        edtPasswd.Text := ADOConn.Properties['Password'].Value;
        btnTestClick(Sender);
      end;
    end;
      

  4.   


    如果楼主的软件是固定连接到某一类型的数据库,如只能使用SQL server或只能使用access那么我建议楼主不要用你问到的那个法方。而是自己设计一个数据库配置窗口,让客户只输入配置数据库需要的几个参数就可以了。
    如>   使用sql server 数据库则一般只有四个参数:
    1.sql server的服务器名或IP   (servername)
    2.登陆sql server的用户名       (logname)
    3.登陆sql server的密码          (logpass)
    4.数据库名                        (databasename)然后
    adoconnection1.close;
    adoconnection1.connectstring='provider=sqloledb.1;server='+ servername +';database='+ databasename +';uid='+ logname +';password='+ logpass +';persist securyti info=false';
    adoconnection1.open;其他类型的数据库方法差不多。
      

  5.   

    用ini配置文件uses inifiles
     with tinifile.Create(ConnectFile) do
       begin
        IClog:=ReadString('adoconnectstring','Initial Catalog','myDB')+';';
        DSouce:=ReadString('adoconnectstring','Data Source','127.0.0.1')+';';
        userID:=ReadString('adoconnectstring','UserID','sa')+';';
        password:=ReadString('adoconnectstring','password','');
    ……
    以上是读取
        
    WriteString就是写入配置表配置窗口可以自己写,用PromptDataSource(self.handle,'')对于专业的用户还好办,普通用户恐怕就要昏了