表如下
CREATE TABLE Authorize /*权限表*/
(
Name char(8)  NOT NULL,  /*姓名*/
Password char(6)  NULL,  /*密码*/
Authority varchar(1)  NULL, /*权限*/
constraint Authorize_PK primary key (Name)
);insert into Authorize values('gen','123456','2');  
insert into Authorize values('man','654321','1');  
insert into Authorize values('sup','456879','0'); 我想通过TADOQuery执行一条动态sql找到gen的权限,也就是2了。返回2到edit1里面显示,谁能帮下,谢谢。

解决方案 »

  1.   

    补充下:也不一定非这用TADOQuery啦,command这些都可以,关键是能在edit1里面显示出来!
      

  2.   

    with ADOQuery do
    begin
      sql.clear;
      sql.add('SELECT * FROM Authorize WHERE Authority=''2''');
      open;
    end;Edit1.Text:=ADOQuery.FieldByName('Authority').AsString;

    Edit1.Text:=ADOQuery.Fields[0].AsString;
      

  3.   

       我想执行的是select Authority from Authorize where Name like :U_login.username,然后得到的结果放到pow里,再说pow放到edit1里面。
       执行后老是说什么对像不一致~
      

  4.   

    adoquery1.close;
    adoquery1.sql.clear;
    adoquery1.sql.add('select Authority from Authorize where Name = ''Gen'');
    adoquery1.open;
    Edit1.Text:=adoquery1.fieldbyname('Authority ').AsString;
      

  5.   

    为什么要用like?
    :U_login.username这又是什么表示方法? 
    如果是参数方式,加U_login做啥?
    如果用like,没有通配符,相当于等号(=),多此一举!
    U_login是窗体名字还是单元名字?
    username是控件名字还是定义的变量?
    下面三种方法暂且把U_login当是窗体名字,username当作是Edit控件名字,至于是不是,自己研究去吧!!
    sql.text:='select Authority from Authorize where Name='''+U_login.username.text+'''';sql.text:='select Authority from Authorize where Name like ''+U_login.username.text+'%'';sql.text:='select Authority from Authorize where Name=:username';
    ADOQuery1.Parameters.ParamByName('username').Value:=U_login.username.text;
      

  6.   

    这不是很简单么?
    sql.text:='select Authority from Authorize where Name='''+U_login.username.text+''''; 
    edit1.text:=adoquery1.fieldbyname('Authority ').AsString;
      

  7.   

    还有一个问题,为什么运行后老是说adoquery这个控件里field的‘Authority’找不到?
    看了下adoquery这个控件里的field只有一个name属性。
    这是为什么?