result:=0;
  AdoStr:='Provider=SQLOLEDB.1;'+
          'Password='+PW+';'+
          'Persist Security Info=True;'+
          'User ID='+ UserID+';'+
          'Initial Catalg='+ InitialCatalg+';'+
          'Data Source='+ DataSource+';'+
          'Use Procedure for Prepare=1;'+
          'Auto Translate=True;'+
          'Packet Size=4096;'+ 
          'Use Encryption for Data=False;'+
          'Tag with column collation when possible=False';   Filename:='AdoCon.ini';   if result=0 then
     try
       AdoIniFile:= Tinifile.Create(Filename);
     except
       result:=1;
     end;   if result=0 then
     try
       AdoIniFile.WriteString('DefaultSet','Set',dbName);
       AdoIniFile.WriteString(dbName,'constr',Adostr);
       AdoIniFile.WriteString(dbName,'defaultDatabase',InitialCatalg);
     except
       result:=2;
     end;
不知道为什么不能创建Adocon.ini文件。
我手工创建了Adocon.ini文件后,调用也不能,各位清帮我看看怎么回事。谢谢!
   DmObj:= TDM.Create(forms.Application);   Filename:='AdoCon.ini';
   AdoIniFile:= Tinifile.Create(Filename);
   DefaultSet:=AdoIniFile.ReadString('DefaultSet','set','nothing');
   constr:=AdoIniFile.ReadString(DefaultSet,'constr','nothing');
   DefaultDatabase:=AdoIniFile.ReadString(DefaultSet,'DefaultDatabase','nothing');
   AdoIniFile.Destroy;   DmObj.ADOCon.ConnectionString:=constr;
   DmObj.ADOCon.Provider:='SQLOLEDB.1';
   DmObj.ADOCon.DefaultDatabase:= DefaultDatabase;
   DmObj.ADOCon.LoginPrompt:=false;
   DmObj.ADOCon.Open;
ini文件的内容是:
[DefaultSet]
Set=demo
[demo]
constr=Provider=SQLOLEDB.1;Password=密码;Persist Security Info=True;User ID=sa;Initial Catalg=数据库名;Data Source=服务器名;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Use Encryption for Data=False;Tag with column collation when possible=False
defaultDatabase=数据库名摆脱了。

解决方案 »

  1.   

    Filename:=ExtractFilePath(application.ExeName)+'AdoCon.ini';
      

  2.   

    同意楼上。
    不指定路径,好象是保存到系统目录下了。
    你查找以下你的计算机看有没有以前的ini文件
      

  3.   

    if result=0 then
         try
           AdoIniFile:=ExtractFilePath(application.ExeName)+'AdoCon.ini';//加上这句       AdoIniFile:= Tinifile.Create(Filename);
         except
           result:=1;
         end;
      

  4.   

    不指定路径应该在Winnt的目录下有这个INI文件啊,可是没有。还有我注册了DLL文件后。如果改动覆盖这个DLL文件,必须要重新启动机器,我反注册,就是后面始终有DLLhost这个进程。怎么搞掉她,搞不掉他我就要重新启动机器。郁闷啊!