var
  MyIni : TiniFile;
  sPath, S: string;
begin
  sPath := ExtractFilePath(Application.ExeName);
  MyIni:=TiniFile.Create(sPath + 'CYGL.ini');
  ADOConnet.ConnectionString:=MyIni.readString('LoginConnection','ConnectionString','');
  MyIni.Free; 
  try
    ADOConnet.Connected:= True;
  except
    if not Assigned(SetDataForm) Then
    begin
      SetDataForm:=TSetDataForm.Create(Self);
      SetDataForm.ShowModal;
    end;
  end;
end;

解决方案 »

  1.   

    ADOConnet.ConnectionString:=MyIni.readString('LoginConnection','ConnectionString','');
    如果没有CYGL文件ADOConnet.ConnectionString应该为空。
      

  2.   

    ADOConnet.ConnectionString:=MyIni.readString('LoginConnection','ConnectionString','');最后的'' 用默认的连接字符串,不要用空的!!if not fileExists(sPath + 'CYGL.ini') then
     showMessage('file not exists');
    MyIni:=TiniFile.Create(sPath + 'CYGL.ini');
      

  3.   

    以下或许对你有帮助.var AdocnIni: Tinifile;
        IniFileName,AdoCnStr:String;
        DBServer,DBNM,UID,PWD,ErrStr:String;
        ErrNo:Longint;
    begin
       Adoconn.Close;
       IniFileName:=ExtractFilePath(ComServer.ServerFileName)+'CYGL.ini';
       If FileExists(IniFileName) then
       Begin
          AdocnIni:=Tinifile.Create(IniFileName);
          try
            DBServer:=AdocnIni.ReadString('Connect','DBServerNm','默认的SQL服务器名');
             DBNM:=AdocnIni.ReadString('Connect','DBNM','默认的数表库名');
             UID:=AdocnIni.ReadString('Connect','UID','默认的用户名');
             PWD:=AdocnIni.ReadString('Connect','PWD','默认的密码');
             AdocnStr:='Provider=SQLOLEDB.1;Persist Security Info=True; User ID='+Trim(UID)+'; PassWord='+PWD+';Initial Catalog='+Trim(DBNM)+';Data Source='+Trim(DBServer);
          finally
             AdocnIni.free;
          end;
          try
             Adoconn.close;
             Adoconn.ConnectionString:=Adocnstr;
             Adoconn.Connected:=True;
             //Screen.Cursor:=crHourGlass;
          except
             On E:EOleException do
             begin
               //错误号 -2147467259  SQL Server 服务器名,数据名错误
               //       -2147217843  登录错误(用户名错,口令错)                    数据名错误
               ErrStr:=E.Message;
               ErrNo:=E.ErrorCode;
               raise E.Create(ErrStr,ErrNo,ErrStr,'',0);
               //ShowMessage(IntToStr(ErrNo));
             end;
             //Screen.Cursor:=crdefault;
          end;
          //Screen.Cursor:=;
       End
       else
          Begin
             Application.MessageBox('相关的INI文件不存在,请检查INI文件及其配置!','系统错误!',MB_OK);
             Application.Terminate;
          End;
      

  4.   

    因该到当前目录读取INI文件。
       Appini:=TIniFile.Create(ExtractFilePath(Application.ExeName) + 'APP.INI');
    -------------------------
    procedure TLogin.ReadINIFile(const AIniFile: TIniFile; var ADataSource, AUserID, APassWord: string);
    begin
      ADataSource := AIniFile.ReadString('ConnectionParams', 'Data Source', '');
      AUserID := AIniFile.ReadString('ConnectionParams', 'User ID', '');
      APassWord := AIniFile.ReadString('ConnectionParams', 'Password', '');
    end;
    如果INI文件不存在,那ADataSouce,AUserID,APassword肯定都是‘’字符
    这时候你付给ADO字符串,然后激活Connect肯定会返回错误,连接失败
    你可以Show除你自己的数据库配置窗口
          if not TestConnect(DataSource, UserID, PassWord) then
          begin
            if not TfrmDBConfig.Execute(DataSource, UserID, PassWord) then
              Application.Terminate
            else
              WriteINIFile(FIniFile, DataSource, UserID, PassWord);
          end;
    配置成功后,把信息写入INI  AIniFile.WriteString('ConnectionParams', 'Data Source', ADataSource);
      AIniFile.WriteString('ConnectionParams', 'User ID', AUserID);
      AIniFile.WriteString('ConnectionParams', 'Password', APassWord);
      

  5.   

    把第一次的配置信息写到INI文件里,如果没有INI文件,你就默认数据库为master,主机地址为local,用户名为sa,密码为sa