我制作一个数据库程序的登陆窗体,是用ado连接的,怎么才能动态的连接(就是自动找数据库名字),怎么才能把数据库的sa和密码写到注册表里,下次登陆自己查找

解决方案 »

  1.   

    写到INI文件中也行的.最主要的就是DataSource的连接.
      

  2.   

    读ini文件,怎么做?能具体点吗,最好有源代码
      

  3.   

    在应用程序文件夹内创建一个datasource.ini文件,文件内容如下:
    [sys1]
    otherstr=Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=
    dasource=Data Source=your_server_name
    dabase=stats;
    使用时现在单元的uses部分加如一个Inifiles;
    下面是应用:
    var
      Myinifile:Tinifile;//INI文件变量
      dabase,dasource,otherstr:string;//数据库、服务器、其他信息
    begin
       //从datasource.INI文件中获取数据库、服务器、其他信息
        Myinifile := TIniFile.Create(ExtractFilePath(Application.ExeName)+'datasource.ini');
        otherstr := MyIniFile.ReadString('sys1','otherstr','');
        dasource := MyIniFile.ReadString('sys1','dasource','');
        dabase :=MyIniFile.ReadString('sys1','dabase','');
        MyIniFile.Free;
        //建立与数据库的连接,并查询登录信息
        ADOQuery1.ConnectionString :=otherstr+dabase+dasource;



    end;
      

  4.   

    我同事写的card.ini[connect]
    ; 连接字符串;
    Provider=SQLOLEDB.1
    Password=china
    Persist Security Info=True
    User ID=sa
    Initial Catalog=xzlrzd
    Data Source=KEWEI-05\QQ
    Use Procedure for Prepare=1
    Auto Translate=True
    Packet Size=4096
    Workstation ID=YELONG
    Use Encryption for Data=False
    Tag with column collation when possible=False
    在登陆窗体里写
    procedure Tfrm_login.FormCreate(Sender: TObject);
    var strconnection,password,server,logname:string;
    begin
    //连接数据库
    myinifile:=tinifile.Create(ExtractFilePath(paramstr(0))+'card.ini');
    password:=trim(myinifile.ReadString('connect','password',''));
    logname:=trim(myinifile.ReadString('connect','User ID','sa'));
    server:=trim(myinifile.ReadString('connect','Data Source',''));
    strconnection:='Provider=SQLOLEDB.1;Password='+password;
    strconnection:=strconnection+';Persist Security Info=True;User ID='+logname;
    strconnection:=strconnection+';Initial Catalog=xzlrzd;Data Source='+server;
    strconnection:=strconnection+';Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Use Encryption for Data=False;Tag with column collation when possible=False';
    //strconnection:='Provider=SQLOLEDB.1;Password='''+password+''';Persist Security Info=True;User ID='''+logname+''';Initial Catalog=xzlrzd;Data Source='''+server+''';Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=KEWEI-05;Use Encryption for Data=False;Tag with column collation when possible=False';
    dm.ADOConnection1.Close;
    dm.ADOConnection1.ConnectionString:=strconnection;
    try
    dm.ADOConnection1.Open;
    dm.ADOConnection1.Connected;
    except
            application.MessageBox('数据库连接失败,请设置后重试!','系统提示:',mb_ok);
            exit;
    end;
    //************************************************8//**********************************end;