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.open;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
if adoconnection1.Connected=true then
 showmessage('1')
 else
  showmessage('2');
  form2.show;
end;
请问上面代码错在哪?我是想如果连接失败的话,进入form2,写INI。

解决方案 »

  1.   

    try
      connection.open;
    except
      form2.showmodal;
    end;
      

  2.   

    try
    except
    end;如果要最准确的话可以onerror
      

  3.   

    1.constring:='Provider=SQLOLEDB.1;Password=sa;Persist Security Info=True;User ID=sa;Initial Catalog=building;Data Source='+sql; //这里改一下.
    2.adoconnection1.open;你在oncreate事件中已经打开,如果连不上会有错误提示.
    3.可以把这句去掉,在button1中联接数据库就行.
      

  4.   

    貌似用udl文件连接更方便和安全。
      

  5.   

    1,2,4楼的方法我试了,提示SQL SERVER不存在或拒绝访问。为什么?
      

  6.   

    我的意思是如果INI文件中的IP是错误的,想调用FORM2来修改IP。该怎么写呢?
      

  7.   

    另做个配置数据库连接的窗口,把dns、sa、密码及数据库名称等信息写入配置文件
      

  8.   

    楼上你看清楚我的问题了吗?我的INI文件只有IP。当IP不是服务器的地址的时候出现‘SQL SERVER不存在或拒绝访问’错误。我就是想问怎么才能不出这个错误,直接出FORM2修改IP。高手帮忙!!!
      

  9.   

    if adoconnection1.Connected=true then 
     showmessage('1') 
     else 
      showmessage('2'); 
      form2.show; 
    end; 
    改成
    if adoconnection1.Connected=true then 
     showmessage('1') 
     else
    begin 
      showmessage('2'); 
      form2.show; 
    end;
    end; 
      

  10.   

    我是想如果连接失败的话,进入form2,写INI---你的程序执行时,无论是成功还是失败都会进入form210楼的刚好实现楼主的意思.
      

  11.   

    如果按照10楼的改过后,还是出现form2说明连接失败.记得将adoconnection1.loginprompt:=False;