上面那两句改这样
SCatalog:=ini.ReadString('set','Catalog',SCatalog);
Ssource:=ini.ReadString('set','Source',Ssource);

解决方案 »

  1.   

    procedure Tf_dm.DataModuleCreate(Sender: TObject);
    var 
        Ini      : TIniFile;
        sqltmp   : string;
        Scatalog : string;
        Ssource  : string;
    begin
      ini    := TiniFile.Create('a.ini');
    //  ini.ReadString('set','Catalog',SCatalog);
    //  ini.ReadString('set','Source',Ssource);
    //上面这两句改了
    SCatalog:=ini.ReadString('set','Catalog',SCatalog);
    Ssource:=ini.ReadString('set','Source',Ssource);// 上面的这几句有没有错呀?
      sqltmp := sqltmp + 'Provider=SQLOLEDB.1;Persist Security Info=False;';
      sqltmp := sqltmp + 'User ID=sa;';
      sqltmp := sqltmp + 'Initial Catalog=' + Scatalog + ';';
      sqltmp := sqltmp + 'Source=' + Ssource;
      try
      ac.close;
        ac.ConnectionString := sqltmp;
        ac.DefaultDatabase  := Ssource;
        ac.Connected := true;
        ac.open;
      except
        showmessage('没有联上数据库' + ini.FileName +'  '+ Scatalog +'  '+ Ssource);
    //运行时为什么只显示:没有联上数据库a.ini而不是:没有联上数据库a.ini dgk biao呢?
      end;
      ini.Free;
    end;
      

  2.   

    a.ini必须在window目录下,因为你没有带全路径。
      

  3.   

    to : taxi(游少爷) 噢,我试试先谢谢
      

  4.   

    应该如此
    SCatalog:=ini.ReadString('set','Catalog','default string');
    default string为如果读错取此默认值
    请仔细看看delphi help!!!
      

  5.   

    1、请把INI的路径写前;
    2、修改以下两句:
    ini.ReadString('set','Catalog',SCatalog);
    ini.ReadString('set','Source',Ssource);
    上面这两句改了
    SCatalog:=ini.ReadString('set','Catalog','');
    Ssource:=ini.ReadString('set','Source','');