我用如下代码设置连接远程数据库,可是要是我在edtServerIP栏输入的IP要是错了就卡在那不动.输对了还挺正常的.
是不是我程序哪出问题了.求高手帮忙.
unit Unit9;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Inifiles, StdCtrls, Buttons, DB, ADODB;type
  TForm1 = class(TForm)
    ADOConn: TADOConnection;
    edtServerIP: TEdit;
    BitBtn1: TBitBtn;
    ADOQuery1: TADOQuery;
    Label1: TLabel;
    procedure BitBtn1Click(Sender: TObject);
    procedure edtServerIPChange(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
  private
    { Private declarations }
  public
    { Public declarations }
  end;var
  Form1: TForm1;
  myinifile:TInifile;
  
implementation{$R *.dfm}procedure TForm1.BitBtn1Click(Sender: TObject);
begin
ADOconn.ConnectionString:='Provider=SQLOLEDB.1;Integrated Security=SSPI;'+
'Persist Security Info=False;Initial Catalog=lzz;Data Source='+edtServerIP.Text+';'+
'Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation '+
'ID='+edtServerIP.Text+';Use Encryption for Data=False;Tag with column collation when possible=False';
begin
  try
    if not adoconn.connected then adoconn.connected := true;
    adoquery1.close; adoquery1.sql.clear;
    adoquery1.sql.add('select * from lzz');
    adoquery1.open;
    Application.MessageBox('已连接上数据库,测试成功!  ', '提示信息', MB_OK or MB_ICONINFORMATION);
  except
    adoconn.connected:= false;
    Application.MessageBox('无法连接上数据库,测试失败!  ', '提示信息', MB_OK or MB_ICONERROR);
  end;
end;
end;procedure TForm1.edtServerIPChange(Sender: TObject);
begin
if edtServerIP.Text <> '' then
BitBtn1.Enabled:=true;
end;procedure TForm1.FormCreate(Sender: TObject);
var
FileName:string;
begin
FileName:=ExtractFilePath(Paramstr(0))+'lzz.ini';
myinifile:=TInifile.Create(FileName);
ADOConn.ConnectionString:=myinifile.ReadString('连接设置','ADOConn','127.0.0.1');
end;procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
myinifile.WriteString('连接设置','ADOConn',ADOConn.ConnectionString);
myinifile.Destroy;
end;end.