用的是ADO连接SQL,连接没问题.login为登陆窗口,manage为调用窗口.在login中有3个edit,一个button. manage有两个button. 问题出现在,设置了权限,在login登陆只允许打开其中之一,怎么进入manage后两个按钮都能用了??? login的Button1Click代码如下,请高手指点错误.implementation
uses Formmanage;
{$R *.dfm}procedure Tlogin.Edit1Exit(Sender: TObject);
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select 姓名 from 用户清单 where 用户编号 ='''+edit1.text+'''');
adoquery1.Open;
edit2.Text:=adoquery1.fieldbyname('姓名').AsString;
end;procedure Tlogin.Button1Click(Sender: TObject);
var
user,pass,temp:string;
begin
user:=edit2.Text;
pass:=edit3.Text;
adoquery1.Close;
adoquery1.SQL.Text:='select 用户编号 from 用户清单 where 姓名='''+user+'''and 密码='''+pass+'''';
adoquery1.Open;
temp:=adoquery1.FieldByName('用户编号').AsString;
if temp<>'' then
begin
manage.Button1.Enabled:=false;
manage.Button2.Enabled:=false;
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Text:='select 权限序号 from 权限清单 where 用户编号='''+temp+'''and 权限名称=''进货单''';
adoquery1.Open;
if adoquery1.FieldByName('权限序号').AsString<>'' then
manage.Show;
manage.Button1.Enabled:=true;
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Text:='select 权限序号 from 权限清单 where 用户编号='''+temp+'''and 权限名称=''销售单''';
adoquery1.Open;
if adoquery1.FieldByName('权限序号').AsString<>'' then
manage.Show;
manage.Button2.Enabled:=true; end;
end;end.
谢谢~~
uses Formmanage;
{$R *.dfm}procedure Tlogin.Edit1Exit(Sender: TObject);
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select 姓名 from 用户清单 where 用户编号 ='''+edit1.text+'''');
adoquery1.Open;
edit2.Text:=adoquery1.fieldbyname('姓名').AsString;
end;procedure Tlogin.Button1Click(Sender: TObject);
var
user,pass,temp:string;
begin
user:=edit2.Text;
pass:=edit3.Text;
adoquery1.Close;
adoquery1.SQL.Text:='select 用户编号 from 用户清单 where 姓名='''+user+'''and 密码='''+pass+'''';
adoquery1.Open;
temp:=adoquery1.FieldByName('用户编号').AsString;
if temp<>'' then
begin
manage.Button1.Enabled:=false;
manage.Button2.Enabled:=false;
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Text:='select 权限序号 from 权限清单 where 用户编号='''+temp+'''and 权限名称=''进货单''';
adoquery1.Open;
if adoquery1.FieldByName('权限序号').AsString<>'' then
manage.Show;
manage.Button1.Enabled:=true;
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Text:='select 权限序号 from 权限清单 where 用户编号='''+temp+'''and 权限名称=''销售单''';
adoquery1.Open;
if adoquery1.FieldByName('权限序号').AsString<>'' then
manage.Show;
manage.Button2.Enabled:=true; end;
end;end.
谢谢~~
manage.Show;
manage.Button1.Enabled:=true;
manage.Button2.Enabled:=false;
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Text:='select 权限序号 from 权限清单 where 用户编号='''+temp+'''and 权限名称=''销售单''';
adoquery1.Open;
if adoquery1.FieldByName('权限序号').AsString<>'' then
manage.Show;
manage.Button2.Enabled:=true;
manage.Button1.Enabled:=false;
————if temp<>'' then
begin
manage.Button1.Enabled:=false;
manage.Button2.Enabled:=false;
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Text:='select 权限序号 from 权限清单 where 用户编号='''+temp+'''and 权限名称=''进货单''';————两句manage.Button1.Enabled:=false;manage.Button2.Enabled:=false;——为何不起作用??
建议改用“是否存在该条记录”来作为判断条件procedure Tlogin.Button1Click(Sender: TObject);
var
user,pass,temp:string;
count:integer;
begin
manage.Button1.Enabled:=false;
manage.Button2.Enabled:=false;
user:=edit2.Text;
pass:=edit3.Text;
adoquery1.Close;
adoquery1.SQL.Text:='select count(*),用户编号 as count from 用户清单 where 姓名='''+user+'''and 密码='''+pass+'''';
adoquery1.Open; if adoquery1['count']=0 then begin showmessage('无此用户!');exit;end;
temp:=adoquery1.FieldByName('用户编号').AsString;
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Text:='select count(*) as count from 权限清单 where 用户编号='''+temp+'''and 权限名称=''进货单''';
adoquery1.Open;
if adoquery1['count']>0 then
manage.Button1.Enabled:=true;
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Text:='select count(*) as count from 权限清单 where 用户编号='''+temp+'''and 权限名称=''销售单''';
adoquery1.Open;
if adoquery1['count']>0 then
manage.Button2.Enabled:=true; manage.Show;
end;