最近在搞毕业设计,现在出现点问题 ,如下是我的登录界面代码,运行时,输入用户名,和密码 ,总是提示说 sql附件有语法错误,麻烦大家帮忙看看谢谢了 很急 无法进展了 
unit login;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, DB, DBTables;type
  TLogin_Form = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    Button1: TButton;
    Button2: TButton;
    name_edit: TEdit;
    password_edit: TEdit;
    procedure Button2Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
   // procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;var
  Login_Form: TLogin_Form;implementation
uses main;{$R *.dfm}procedure TLogin_Form.Button2Click(Sender: TObject);
begin
 name_edit.Clear;
 password_edit.Clear;end;procedure TLogin_Form.FormCreate(Sender: TObject);
beginend;{procedure TLogin_Form.Button1Click(Sender: TObject);
var
  aname,apassword,sqlstr:string;
  a,b:integer;begin
  aname:=trim(name_edit.Text);
  apassword:=trim(password_edit.Text);
  sqlstr:='seclect * from [user]'
  with tquery.Create();
end;}procedure TLogin_Form.Button1Click(Sender: TObject);
var
   aname,apassword,sqlstr:string;
   a,b:integer;
begin
  if(length(trim(name_edit.Text))>0) or (length(trim(password_edit.Text))>0) then
  begin
    aname:=trim(name_edit.Text);
    apassword:=trim(password_edit.Text);
    //
    sqlstr:='seclect b.* from [user] a,[qxb] b where (a.yhm="'+aname+'") and (a.mm="'+apassword+'") and (a.yhm=b.yhm) order by b.cdx';
    with tquery.Create(nil) do
    begin
      try
        //
        sessionname:=main_form.Database1.SessionName;
        databasename:=main_form.Database1.DatabaseName;
        close;
        sql.Clear;
        sql.Add(sqlstr);
        active:=true;
        //
        if recordcount >0 then
        begin
          first;
          while not Eof do
          begin
            a:=strtoint(copy(fieldbyname('cdx').AsString,1,1));
            b:=strtoint(copy(fieldbyname('cdx').AsString,2,2));
            //
            main_form.MainMenu1.Items.Items[a].Visible:=true;
            main_form.MainMenu1.Items.Items[a].Items[b].Visible:=true;
            next;
          end;
          //
          login_form.Close;
         
          main_form.StatusBar1.SimpleText:=aname;
          
          main_form.dlname:=aname;
        end
        else
        begin
          showmessage('请确认登录用户和密码正确');
          name_edit.SetFocus;
          name_edit.SelectAll;
        end;
      finally
      
      free;
    end;
  end;
end
else
begin
  showmessage('请输入登录用户名和密码');
  name_edit.SelectAll;
end;
end;end.

解决方案 »

  1.   

    SQL附近是在哪里
      

  2.   

    首先谢谢你,回复我的帖子。 
    sqlstr:='seclect b.* from [user] a,[qxb] b where (a.yhm="'+aname+'") and (a.mm="'+apassword+'") and (a.yhm=b.yhm) order by b.cdx';
    我不知道是不是这句有语法错误
      

  3.   

    首先谢谢你,回复我的帖子。 
    sqlstr:='seclect b.* from [user] a,[qxb] b where (a.yhm="'+aname+'") and (a.mm="'+apassword+'") and (a.yhm=b.yhm) order by b.cdx';
    我不知道是不是这句有语法错误
      

  4.   

    sql语句错误,自己先在sql上写好语句并测试再说吧
      

  5.   

    [user] a,[qxb] bsql 允许这样使用中括号吗?
      

  6.   

    你的tquery 怎么没有connection??
      

  7.   

    建议先测试一个SQL语句是否正确的,
    再编写DELPHI代码的
      

  8.   

    sqlstr:='seclect b.* from [user] a,[qxb] b where (a.yhm="'+aname+'") and (a.mm="'+apassword+'") and (a.yhm=b.yhm) order by b.cdx';seclect,拼写不对。
    a.yhm="'+aname+'",不能用双引号,用两个单引号。
      

  9.   

    "'+aname+'"
    应该改为
    '''+aname+'''

    为了安全,最好改为
    '+quotedstr(aname)+'