unit Unit1;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, jpeg, ExtCtrls, ADODB, DB;type  TForm1 = class(TForm)    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    edtpassword: TEdit;
    btnOK: TButton;
    Button2: TButton;
    Image1: TImage;
    cmbUsername: TComboBox;
    procedure btnOKClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;var
  Form1: TForm1;implementationuses Unit2;{$R *.dfm}procedure TForm1.btnOKClick(Sender: TObject); var
    Query: TADOQuery;
 begin
     try
        Query:= TADOQuery.Create(nil);
        Query.Connection:= dmPer.acPer;      //dmPer.acPer是公共的数据库连接对象
        Query.SQL.Add('select * from Operator where UserName =:UseName and UserPwd =:userpwd');
        Query.Parameters.ParamByName('UserName').Value:= cmbUsername.Text;
        Query.Parameters.ParamByName('userpwd').Value := edtpassword.Text;
        Query.Open;
        if Query.RecordCount = 0 then        begin
            MessageDlg('请输入正确的用户名和密码',mtError,[mbok],0);
            Exit;
        end;
 end;end.一个登录界面,错误提示:
55行:EXCEPT or FINALLY expected
57:';'expected but '.' found
59: delclaration expect but end of file found
[Fatal Error]Project.dpr[7]:Could compile used unit'Unit.pas'
转来转去好象就是end 的问题,请问要做什么修改?谢谢

解决方案 »

  1.   

    procedure TForm1.btnOKClick(Sender: TObject); var
        Query: TADOQuery;
     begin
         try
            Query:= TADOQuery.Create(nil);
            Query.Connection:= dmPer.acPer;      //dmPer.acPer是公共的数据库连接对象
            Query.SQL.Add('select * from Operator where UserName =:UseName and UserPwd =:userpwd');
            Query.Parameters.ParamByName('UserName').Value:= cmbUsername.Text;
            Query.Parameters.ParamByName('userpwd').Value := edtpassword.Text;
            Query.Open;
            if Query.RecordCount = 0 then        begin
                MessageDlg('请输入正确的用户名和密码',mtError,[mbok],0);
                Exit;
            end;
         except
           on E:Exception do
           begin
             showmessage(E.Message);
           end;
         end;
     end;try
    .......
    exceptendortry
    .......
    finallyend
      

  2.   

    你的问题是:1、缺少实际练习;2、要善于分析错误“EXCEPT or FINALLY ”第一想到的就是try语法。
    后面的错误均是缺少“EXCEPT or FINALLY ”引起的。
      

  3.   


    procedure TForm1.btnOKClick(Sender: TObject);
    var
      Query: TADOQuery;
    begin
      try{你设置了异常处理,要不去掉try,要不就添加异常处理代码}
        Query:= TADOQuery.Create(nil);
        Query.Connection:= dmPer.acPer;      //dmPer.acPer是公共的数据库连接对象
         Query.SQL.Add('select * from Operator where UserName =:UseName and UserPwd =:userpwd');
        Query.Parameters.ParamByName('UserName').Value:= cmbUsername.Text;
        Query.Parameters.ParamByName('userpwd').Value := edtpassword.Text;
        Query.Open;
        if Query.RecordCount = 0 then
        begin
          MessageDlg('请输入正确的用户名和密码',mtError,[mbok],0);
          Exit;
       end;
       except
         showmessage('系统出错了!');
       end;
    end;