我要动态链接数据库.代码如下:
procedure TForm1.FormCreate(Sender: TObject);
var
      ConnectString:   String;
      ConfigFile:   TIniFile;
  begin
      ConfigFile   :=   TIniFile.Create(ExtractFilePath(Application.ExeName)   +   'Config.ini');      If   Not   FileExists(ExtractFilePath(Application.ExeName)   +   'Config.ini')   Then
      Begin
          ShowMessage('数据库没有连接,请先连接数据库');
          ConnectString   :=   PromptDataSource(Handle,   ConnectString);
          ConfigFile.WriteString('ConnectString',   'CurConnectString',   ConnectString);
      End
      Else
      Begin
          ConnectString   :=   ConfigFile.ReadString('ConnectString',   'CurConnectString',   '');
      End;      Self.con1 .ConnectionString   :=   ConnectString;
      Try
          self.con1.Open;
          self.qry1.active:=True;
      Except
          ShowMessage('数据库连接错误,请检查配置文件   Config.ini   !');
          DeleteFile(ExtractFilePath(Application.ExeName)   +   'Config.ini');
          Application.Terminate;
      End;
end;
end.请问 Config.ini 文本如何书写????

解决方案 »

  1.   

    [Server]
    serverName=(local)
    [DataBase]
    databaseName=MyDataBase
    [userid]
    user=sa
    [userpass]
    userpass=1234
      

  2.   

    要设置ODBC吗?
    如何设置呢?
      

  3.   

    错误:无效的授权说明
    解决方法:重装Mdac
      

  4.   

    用Ini文件配置数据库,还不如用UDL文件配置,更快捷一些
      

  5.   

    新建立一个文本文件如 1.txt
    然后把1.txt的后缀.txt 改成 .udl 后成1.udl然后双击打开UDL文件可以进行配置
    配置好后在ADOConnection的ConnectionString为
    FileName='UDL文件名'就可以了'在有就是你的那个Ini文件的Writing('父结点名','子结点名','值')
    如你的那个ConfigFile.WriteString('ConnectString',   'CurConnectString',   ConnectString)的配置就应该为[ConnectString]
    CurConnectString=这里写你的那个ConnectString值不过这样不合理我一般是这样搞的如下:[数据库设置]
    LogFormat=MsSql
    SerVer=(local)
    DataBase=
    User=sa
    PassWord=
    UDLFile=
      

  6.   

    其实主要是楼主的需求是想把哪些内容放到程序之外来配置,这个要先考虑清楚。
    然后再是用什么方法来实现这些配置(INI也好,DAT也好,UDL也罢)。看样子该结贴了,楼主应该想明白了怎么去设计。至于第二步(怎么去实现),这里面没有什么技术含量,从楼主自己的代码也看得出来,你已经会操作INI文件了。
      

  7.   

    procedure TForm1.Timer_sendTimer(Sender: TObject);
    var
      ID:string;
      MessageContent,Number,SendTime:string;
      ConnStr :string;
      ServerAddress,DBName,UserName,Password:string;
      IniFile:TiniFile;
    begin
      IniFile := TiniFile.Create('Config.Ini');
      ServerAddress := IniFile.ReadString('DbCOnfig','ServerAddress','');
      DBName        := IniFile.ReadString('DbCOnfig','DbName','');
      UserName      := IniFile.ReadString('DbCOnfig','UserName','');
      Password      := IniFile.ReadString('DbCOnfig','Password','');
      IniFile.Destroy;
      ConnStr := 'Provider=SQLOLEDB.1;Password="'+Password+'";Persist Security Info=True;User ID='+UserName+';Initial Catalog='+DBName+';Data Source='+ServerAddress;
      ADOConnection1.connected:=false;
      ADOConnection1.ConnectionString:=connstr;
      ADOConnection1.connected:=true;
      ADOConnection1.Open;
      ADODataSet1.Connection:= ADOConnection1;
      //DataSet
      with ADODataSet1 do
      begin
        ADODataSet1.Active;
        ADODataSet1.Close;
        ADODataSet1.Connection:= ADOConnection1;
        ADODataSet1.CommandText:='select TOP 1 ID,GetNO,GetInfo from SendInfo';
        ADODataSet1.Open;
        first;
    给你参考,相信可以解决你的问题