我想用INI文件进行数据库连接,INI文件中只有IP地址。当IP正确的时候,出现提示信息,错误的时候出现form2修改IP。我现在不懂的是怎么样才能调出FORM2。我的代码如下:
procedure TForm1.FormCreate(Sender: TObject);
var
Fini:Tinifile;
sql:string;
filename:string;
constring:string;
begin
  filename:=ExtractFilePath(Paramstr (0))+'serverip.ini';
  Fini:=TiniFile.create(filename);
  with Fini do
   try
   sql:=Fini.readstring('server', 'ip', '');//ip是192.168.1.11
   finally
   Fini.destroy;
  end;
 constring:='Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=building;Data Source='''+sql+'''';
 adoconnection1.ConnectionString:=constring;
 adoconnection1.LoginPrompt:=false;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
 if adoconnection1.Connected=true then
 showmessage('1')
 else
begin
  showmessage('2');
  form2.showmodal;
end;
end;
请问错误在哪?如果在buttonclick事件中用try的话,该怎么写?

解决方案 »

  1.   

    procedure TForm1.FormCreate(Sender: TObject); 
    var 
    Fini:Tinifile; 
    sql:string; 
    filename:string; 
    constring:string; 
    begin 
      filename:=ExtractFilePath(Paramstr (0))+'serverip.ini'; 
      Fini:=TiniFile.create(filename); 
      with Fini do 
       try 
       sql:=Fini.readstring('server', 'ip', '');//ip是192.168.1.11 
       finally 
       Fini.destroy; 
      end; 
     constring:='Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=building;Data Source='''+sql+''''; 
     adoconnection1.ConnectionString:=constring; 
     adoconnection1.LoginPrompt:=false; 
     adoconnection1.open; //错在这儿.
    end; 
      

  2.   

    2楼的,你那么写不对。FORM1都不显示了。我写的代码为什么总是连接失败呢?谁能告诉我?
      

  3.   

    试试Persist Security Info=False
      

  4.   

    不行,是不是buttonclick中代码不对?
      

  5.   

    procedure TForm1.FormCreate(Sender: TObject); 
    var 
    Fini:Tinifile; 
    sql:string; 
    filename:string; 
    constring:string; 
    begin 
      filename:=ExtractFilePath(Paramstr (0))+'serverip.ini'; 
      Fini:=TiniFile.create(filename); 
      with Fini do 
       try 
       sql:=Fini.readstring('server', 'ip', '');//ip是192.168.1.11 
       finally 
       Fini.destroy; 
      end; 
     constring:='Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=building;Data Source='''+sql+''''; 
     adoconnection1.ConnectionString:=constring; 
     adoconnection1.LoginPrompt:=false; 
    end; 
    procedure TForm1.Button1Click(Sender: TObject); 
    begin 
     try
      if adoconnection1.open then 
      showmessage('1') 
     except
      showmessage('2'); 
      form2.showmodal; 
    end; end; 
      

  6.   

     if adoconnection1.open then   这是错误的。
      

  7.   

    procedure TForm1.Button1Click(Sender: TObject);  
    begin  
     try 
      adoconnection1.open; 
      showmessage('1');  
     except 
      showmessage('2');  
      form2.showmodal;  
    end;  
      

  8.   

    试试看在form1中引用form2,然后:
    begin
     if adoconnection1.Connected=true then
     showmessage('1')
     else
    begin
      showmessage('2');
      application.createform(tform2,form2);
      form2.showmodal;
    end; 
      

  9.   

     constring:='Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=building;Data Source='''+sql+''''; 
     adoconnection1.ConnectionString:=constring; 
     adoconnection1.LoginPrompt:=false; 
     
    后加ADOCon1.Close;
    ADOCon1.Open;
      

  10.   

    楼主那样写貌似没有问题的吧?Form2在run的时候有没有创建啊?如果没有创建你需要create的