给这段代码加注释
procedure Tlogin_Form.BitBtn1Click(Sender: TObject);
begin
with login.query1 do
begin
close;
SQL.clear;
SQL.add('select * from login');
SQL.add('where 用户名=:Username');
SQL.add(' add =:passwd');
ParamByName('Username').asstring:=Username.text;
ParamByName('passwd').asstring:=passwd.text;
Prepare;
open;
end;
if login.query1.recordcount=0 then
ModalResult:=mrCancel
else if login.query1['用户类型']='系统管理员' then
begin
G_username:=login.query['用户名'];
ModalResult:=mrOk;
end
else
begin
G_username:=login.query['用户名'];
ModalResult:=mrIgnore;
end;
end;

解决方案 »

  1.   

    //登陆确认程序
    procedure Tlogin_Form.BitBtn1Click(Sender: TObject);
    begin
    // 从login表中查找用户名为Username.text,密码为passwd.text的用户
    with login.query1 do
    begin
    close;
    SQL.clear;
    SQL.add('select * from login');
    SQL.add('where 用户名=:Username');
    SQL.add(' add =:passwd');
    ParamByName('Username').asstring:=Username.text;
    ParamByName('passwd').asstring:=passwd.text;
    Prepare;
    open;
    end;//如果没有这个用户,按下cancal按钮并且退出
    if login.query1.recordcount=0 then ModalResult:=mrCancel
    //如果这个用户的用户类型是'系统管理员'
    else if login.query1['用户类型']='系统管理员' then
    begin
    G_username:=login.query['用户名'];
    ModalResult:=mrOk;
    end//该用户不是系统管理员
    else
    begin
    G_username:=login.query['用户名'];
    ModalResult:=mrIgnore;
    end;
    end;
      

  2.   

    Username.text和passwd.text是edit编辑框的属性
    这几句代码我还是不太懂,请加注释
    with login.query1 do
    SQL.add('where 用户名=:Username');
    SQL.add(' add =:passwd');
    ParamByName('Username').asstring:=Username.text;
    ParamByName('passwd').asstring:=passwd.text;
    G_username:=login.query['用户名'];的G_username从哪里来的
      

  3.   

    我在编译时这句代码不能通过
    G_username:=login.query['用户名'];
    G_username Delphi提示说这个是未说明的标识符
    把它定义为变量也出错,请指教!
      

  4.   

    G_username:=login.query['用户名'];
    //应该是这样把
    G_username:=login.query1['用户名'];
      

  5.   

    这句代码在这段程序中是作什么用的
    G_username:=login.query1['用户名'];
    这个好象是变量G_username应定义为什么类型的
      

  6.   

    为什么我只要在程序中定义这个变量,这个窗体的FormCreate就出错
    var
      login_Form: Tlogin_Form;
       G_username:string;
      

  7.   

    程序在运行后输入用户名和密码出现以下错误信息
    这是数据庫出错信息
    DBISAM Engine Error # 11949 SQL error - SELECT,INSERT,UPDATE,DELETE,CREATE,ALTER,or DROP keyword expected,instead found 'where'
    数据庫用:dbisam
    请指点!
      

  8.   

    再换一下看看
    G_username:=login.query1.FieldByName('用户名').Value;
      

  9.   

    第一个问题是因为你没有声明G_username,我估计你是从其他程序中copy的这段代码,G_username可能是一个全局变量,可能在一个公用的单元中。作用时以后用这个变量判断登陆用户的角色。
    第二个问题,也就是你声明了这个变量之后,错误原因是你的sql不对,没有select * from.在SQL.add('where 用户名=:Username');前加上SQL.add('select * from ');
      

  10.   

    to:niat97222(Freeman) 把那个语句改成那样还是行。
    to: idilent()这段程序是我从书中看到的,G_username这个我已声明为一个全局变量G_username:string;,前加上SQL.add('select * from login');
    这个好象有呀!我的代码就在上面你可看看。
      

  11.   

    这是我的程序,你们看看有没有错误的地方。变量声明在主窗体上全局变量
    var
      Form1: TForm1;
      G_username:string;登录窗体代码上确定按扭的代码
    procedure Tlogin_Form.BitBtn1Click(Sender: TObject);
    begin
    with DM.Users_Query do
    begin
    close;
    SQL.clear;
    SQL.add('select * from login');
    SQL.add('where 用户名=:Username');
    SQL.add(' add 密码=:passwd');
    ParamByName('Username').asstring:=PW_UserName_Edit.Text;
    ParamByName('passwd').asstring:=pw_password_Edit.Text;
    Prepare;
    open;
    end;
    if DM.Users_Query.recordcount=0 then
    ModalResult:=mrCancel
    else if DM.Users_Query['用户类型']='系统管理员' then
    begin
    //G_username := DM.Users_Query.FieldByName('用户名').AsString;
    G_username:=DM.Users_Query.FieldByName('用户名').Value;
    ModalResult:=mrOk;
    end
    else
    begin
    G_username:=DM.Users_Query.FieldByName('用户名').Value;
    ModalResult:=mrIgnore;
    end;
    end;工程文件
    begin  Application.CreateForm(TForm1, Form1);
      Application.CreateForm(TDM, DM);
      login_Form:= Tlogin_Form.Create(Application);
      login_Form.ShowModal;
      if login_Form.ModalResult<>2 then
      begin
      Application.Initialize;
      Application.CreateForm(TForm1, Form1);
      Application.CreateForm(Tlogin_Form, login_Form);
      Form1.Replace.Enabled:=(login_Form.ModalResult=1);
      Application.CreateForm(Tsetpasswd_form, setpasswd_form);
      Application.CreateForm(TUsermanage_Form, Usermanage_Form);  
    Application.Run;
      end;
    end.
      

  12.   


    SQL.add('where 用户名=:Username');
    SQL.add(' add 密码=:passwd');
    ParamByName('Username').asstring:=PW_UserName_Edit.Text;
    ParamByName('passwd').asstring:=pw_password_Edit.Text;改
    SQL.add('where 用户名="Username"');
    SQL.add(' add 密码="passwd"');
    ParamByName('Username').asstring:=PW_UserName_Edit.Text;
    ParamByName('passwd').asstring:=pw_password_Edit.Text;改后那上面的问题已解决,但是换成提示
    Users_Query:parameter'UserName'nof found
    请指教
      

  13.   

    还得改
    SQL.add('where 用户名=''+Username+''');
    SQL.add(' add 密码=''+passwd+''');
    ParamByName('Username').asstring:=PW_UserName_Edit.Text;
    ParamByName('passwd').asstring:=pw_password_Edit.Text;