cnn.ini文件如下:
[server]
dataServer=user  
Database=greyclothsystem ()
User ID=sa
Password=richarduser为我的计算机名,PB1为我的数据库服务器名,出现‘用户User登录失败’procedure TDM.DataModuleCreate(Sender: TObject);
var
  strCnn: WideString;
  iniFile: TIniFile;
  strDatabase, strDataServer, strUserID, strPW: string;
  strTemp: string;
begin
  strTemp := ExtractFilePath(ParamStr(0)) + 'data\cnn.ini';
  try
    iniFile := TIniFile.Create(strTemp);
    strDataServer := iniFile.ReadString('Server', 'DataServer', '');
    strDatabase := iniFile.ReadString('Server', 'Database', '');
    strUserID := iniFile.ReadString('Server', 'User ID', '');
    strPW := iniFile.ReadString('Server', 'Password', '');
  finally
    iniFile.Free;
  end;
  strCnn := 'Provider=SQLOLEDB.1;Password=' + strPW;
  strCnn := strCnn + ';Persist Security Info=True;User ID=';
  strCnn := strCnn + strUserID;
  strCnn := strCnn + ';Initial Catalog=' + strDatabase;
  strCnn := strCnn + ';Data Source=' + strDataServer;
  try
    with DM.conn do
    begin
      Connected := False;
      ConnectionString := strCnn;
      Connected := True;
    end;
  except
    MessageBox(0, '连接数据库失败'#13'请确认数据库程序是否启动', '系统提示',  MB_ICONERROR);
    Halt(0);
  end;
end;

解决方案 »

  1.   

    你把“dataServer=user  ”中的user 改为127.0.0.1试一下
      

  2.   

    在Connected := True;这句前把strCnn显示出来看看是否正确
      

  3.   

    你先把
    Connected := True;这句前把strCnn显示出来看看是否正确,懂吗
    ConnectionString := strCnn;
    showmessage(strcnn);
    Connected := True;
      

  4.   

    var
        filename: string;
        tempstr:string;
    begin
        filename := ExtractFilePath(paramstr(0)) + 'dbconf.ini';
        myinifile := Tinifile.Create(filename);    tempstr := myinifile.ReadString('dbconf', 'connectstring', '');
        dm.adoconmain.Close ;
        dm.adoconmain.LoginPrompt :=false;
        dm.adoconmain.ConnectionString := tempstr ;    dm.adoconmain.Connected :=true;
        try
            dm.adoconmain.Connected := true;
        except
            dm.adoconmain.ConnectionString := 'Provider=SQLOLEDB.1;Password=siwi;Persist Security Info=True;User ID=sa;Initial Catalog=ICBC;Data Source=15.64.1.98';
            dm.adoconmain.Connected := true;
        end;
        if dm.adoconmain.Connected = false then
            showmessage('不能打开您所指定的数据库!');
       // ActiveX.coUnInitialize;end;
    注意在付值前的设置
        dm.adoconmain.Close ;
        dm.adoconmain.LoginPrompt :=false;
        dm.adoconmain.ConnectionString := tempstr ;    dm.adoconmain.Connected :=true;
      

  5.   

    DBConnStr := Format('Provider=SQLOLEDB.1;'
                          +'Persist Security Info=False;User ID=%s;'
                          +'PassWord = %s;Initial Catalog=%s;Data Source=%s',
                          [DBUser,DBPassW,DBName,DBServer]);
      

  6.   

    你的User Id 中间的空格可能会有问题的,你删除掉空格试试。
      

  7.   

    还是出现‘用户User登录失败’
      

  8.   

    你应该是才学delphi吧,不要急,一步一步来,建议先看看书,照书上的例子写些代码
      

  9.   

    跟踪一下,看从INI中读出的数据是否正确,并确认生成的连接字符串一定正确.
    另外,应该在OnBeforeConnect事件中进行连接.