var
  FrmLogin: TFrmLogin;
  LoginTime: Integer;Const U_SQL = 'Select * from user Where name=:u_name and password=:u_psd';implementationuses UnitDM, UnitMain;{$R *.dfm}procedure TFrmLogin.CANCELClick(Sender: TObject);
begin
  ModalResult := 0;
  close;
end;procedure TFrmLogin.FormShow(Sender: TObject);
begin
  LoginTime :=0;
  edit1.Text := '';
  edit2.Text := '';
  Edit1.SetFocus;
end;procedure TFrmLogin.OKClick(Sender: TObject);
begin
  Q_User.Close;
  Q_User.SQL.Text :=U_SQL;
  Q_User.Parameters.ParamByName('u_name').Value :=Edit1.Text;
  Q_User.Parameters.ParamByName('u_psd').Value :=Edit2.Text;
  Q_User.Prepared;
  Q_User.Open;
  if Q_User.RecordCount =0 then
     Begin
       Application.MessageBox('用户名或者密码错误!','错误',MB_OK OR MB_ICONERROR);
       Inc(LoginTime);
       Edit2.SetFocus;
       Edit2.SelectAll;
       if LoginTime = 3 then
          Begin
             DM.Free;
             Application.Terminate;
          end;
     End
  Else
     Begin
       FrmMain.UserName := Q_User.fieldbyName('name').AsString;
       ModalResult :=Q_User.fieldbyName('degree').AsInteger;
     end;
end;procedure TFrmLogin.Edit2KeyPress(Sender: TObject; var Key: char);
begin
  if (key = #13) then ok.Click;
end;
procedure TFrmLogin.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
if Key=13 then
Begin
   Key :=0;
   Edit2.SetFocus;
end;
end;
说我的from子句语法错误,求教那里错了,我的库的用户表名是user 亚

解决方案 »

  1.   

    是不是应该是这样啊:
    Const U_SQL = 'Select * from user Where name="u_name" and password="u_psd"';
      

  2.   

    Const U_SQL = 'Select * from [user] Where [name]=:u_name and [password]=:u_psd';
      

  3.   

    你用的是SQL Server吗?如果是的话
    数据库表名称和系统关键字重复,建议使用AUSer
      

  4.   

    我用的ACCESS数据库
    m_owen() (的方法出现新错 不能找到Q_user的参数 u_name
     genphone_ru(哎,什么都要学,真累) 的方法出现错误Q_user的参数 u_PSD
      

  5.   

    Const U_SQL = 'Select * from user Where name='':u_name'' and password='':u_psd''';
      

  6.   

    Q_User.Parameters.ParamByName('u_psd').Value :=quotedstr(Edit2.Text);
      

  7.   

    m_owen() ( ) firetoucher(风焱) ( )的回复都一样 我该的结果也一样还是不行
     soaringsouth(栈桥捉鳖) 的方法也不行,奇怪了,我真想不通呀
      

  8.   

    靠, 我给你写的范例估计让你改的乱七八糟。语句没问题。
    问题就在USER & PASSWORD上啊,都是系统的保留字。建议:USER表明改成原来的OPERATOR.
    建议字段以x_开头,我的比如OPERATOR表以O_开头,O_ID,O_NAME.
    :)我得习惯。