我是一个初学者,现在问题越来越多了,我现在做了一个工时管理系统,可是连最基本的与服务器连接都连不上,程序是这样的,大家帮我看看吧!
procedure checkserver;
var
  aliasparams: TStringList;
   database1: tdatabase;
begin
  pusername:='JJ'; 
  ppassword:='123'; 
  Database1:=TDatabase.Create(Application);
  with database1 do
  begin
    aliasname:='GSGL’;
    databasename:='TestDb';
    loginprompt:=false;
    params.Clear;
    params.Add('USER NAME='+pusername);
    params.Add('PASSWORD='+ppassword);
  end;
  while true do  
  begin
    try
       database1.Open;   
       break;
    except
       FrmServer:=TFrmServer.Create(Application); 
       if frmserver.ShowModal=mrOK then
       begin
        if session.IsAlias('GSGL') then
        begin
          session.DeleteAlias('GSGL');
          SESSION.SaveConfigFile;
        end;
        aliasparams:=tstringlist.Create;
        aliasparams.Clear;
        aliasparams.Add('database name=工时管理');
        aliasparams.Add('server name='+frmserver.Edit1.Text);
        session.AddAlias('GSGL','MSSQL',aliasparams);
        session.SaveConfigFile;
        frmserver.Release;
       end
       else
       break;
  end;
  end;
end;
问题出在哪里呢??还有就是
try
...
except
...
具体执行过程是怎么样的,请帮我解释一下,先谢谢大家!!

解决方案 »

  1.   

    while true do
    看到这句就看不下去了……
    ------------------------
    try
    ...
    except
    ...
    具体执行过程是怎么样的,请帮我解释一下,先谢谢大家!!
    ----------------------------------------------------
    try语句是一个异常保护语句,就是说如果你的程序中出现了异常,为了不使程序死掉或怎么地而加的,执行过程为:先执行try和except之间的语句,如果没有异常将不会执行except后面的代码而继续进行,如果有异常就跳到except里执行,然后继续,比如:
    procedure TForm1.Button1Click(Sender: TObject);
    begin
        edit1.Enabled:=not edit1.Enabled;
        try
        edit1.SetFocus;
        ShowMessage('ok');
        except
        ShowMessage('出错了');
        end;
        ShowMessage('完毕');
    end;
    自己运行下看看,多点两次
      

  2.   

    while true do  //直到连接服务器成功或者退出系统
    我就是看不懂如果连上服务器的话是一直都执行下面的语句还是怎么回事?高手帮帮我啊!
    我还有些问题:if ...then 最后要加  end结束吗,while的后面要加end吗?还有try except后面呢?
    我发现我的那段代码后的end;有点对不上前面的语句