unit permission;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, ComCtrls, CheckLst;type
  Tpermitt = class(TForm)
    CheckListBox1: TCheckListBox;
    TreeView1: TTreeView;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    BitBtn4: TBitBtn;
    procedure FormShow(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure BitBtn4Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
  procedure BitBtn1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;var
  permitt: Tpermitt;
  i:integer;
  qxid:array[0..27] of integer;
implementation
uses datadm;
{$R *.dfm}
procedure Tpermitt.FormShow(Sender: TObject);
var
 mynode:Ttreenode;
 mynode1,mynode2,mynode3,mynode4:Ttreenode;
begin
   treeview1.Items.Clear;
   mynode:=Treeview1.Items.Add(Treeview1.TopItem,'东力餐饮服务有限公司');
   mynode1:=Treeview1.Items.AddChild(mynode,'经理室');
   mynode2:=Treeview1.Items.AddChild(mynode,'行政部');
   mynode3:=Treeview1.Items.AddChild(mynode,'财务处');
   mynode4:=Treeview1.Items.AddChild(mynode,'客服中心');
   with dm1.query5 do
        begin
            close;
            sql.Add('select * from userinfo');
            open;
            first;
          while not dm1.query5.Eof do
              begin
                 if dm1.query5.FieldByName('部门').Value='经理室' then
                    Treeview1.Items.AddChild(mynode1,dm1.query5.fieldbyname('姓名').AsString);
                 if dm1.query5.FieldByName('部门').Value='行政部' then
                    Treeview1.Items.AddChild(mynode2,dm1.query5.fieldbyname('姓名').AsString);
                 if dm1.query5.FieldByName('部门').Value='财务处' then
                    Treeview1.Items.AddChild(mynode3,dm1.query5.fieldbyname('姓名').AsString);
                 if dm1.query5.FieldByName('部门').Value='客服中心' then
                    Treeview1.Items.AddChild(mynode4,dm1.query5.fieldbyname('姓名').AsString);
                    dm1.query5.Next;
              end;
end;
end;
procedure Tpermitt.BitBtn2Click(Sender: TObject);
begin
 self.Close;
end;
procedure Tpermitt.BitBtn3Click(Sender: TObject);
begin
  for i:=0 to CheckListBox1.Items.Count-1 do
     begin
       CheckListBox1.Checked[i]:=true;
     end;
end;
procedure Tpermitt.BitBtn4Click(Sender: TObject);
begin
  for i:=0 to checklistbox1.Items.Count-1 do
    begin
       checklistbox1.Checked[i]:=false;
    end;    
end;
procedure Tpermitt.BitBtn1Click(Sender: TObject);
begin
  for i:=0 to checklistbox1.Items.Count-1 do
     begin
        if checklistbox1.Checked[i] then
           qxid[i]:=1
        else
           qxid[i]:=0;
     end;
     with dm1.query5 do
         begin
            close;
            sql.Clear;
            sql.Add('update qx');
            sql.Add('set');
            sql.add('餐饮信息管理=qxid[0]');
            sql.add('餐饮信息设置=qxid[1]');
            sql.add('餐饮信息维护=qxid[2]');
            sql.add('餐饮信息查询=qxid[3]');
            sql.add('客房信息管理=qxid[4]');
            sql.add('客房信息维护=qxid[5]');
            sql.add('客房信息设置=qxid[6]');
            sql.add('客房信息查询=qxid[7]');
            sql.add('订房信息管理=qxid[8]');
            sql.add('订房信息添加=qxid[9]');
            sql.add('订房信息查询=qxid[10]');
            sql.add('订房信息维护=qxid[11]');
            sql.add('结算信息管理=qxid[12]');
            sql.add('结算信息添加=qxid[13]');
            sql.add('结算信息维护=qxid[14]');
            sql.add('结算信息查询=qxid[15]');
            sql.add('供应商信息管理=qxid[16]');
            sql.add('供应商资料添加=qxid[17]');
            sql.add('供应商资料设置=qxid[18]');
            sql.add('供应商资料查询=qxid[19]');
            sql.add('固定资产管理=qxid[20]');
            sql.add('资产信息添加=qxid[21]');
            sql.add('资产维护作业=qxid[22]');
            sql.add('资产信息查询=qxid[23]');
            sql.add('系统管理=qxid[24]');
            sql.add('用户添加=qxid[25]');
            sql.add('密码修改=qxid[26]');
            sql.add('权限管理=qxid[27]');
            sql.Add('where 用户名="'+Treeview1.Selected.Text+'"');
            ExecSQL;
            showmessage('权限设置成功');
         end;
end;end.
  上面的问题是:为什么我的Update语句没有发挥作用了,没有执行,qx数据表中的值没有变
化还是以前的值。

解决方案 »

  1.   

    sql.add('餐饮信息管理=' + qxid[0]);
      

  2.   

    close;
                sql.Clear;
                sql.Add('update qx ');  //多加个空格
                sql.Add('set ');         //多加个空格
                sql.add('餐饮信息管理=' + qxid[0]);  //修改
           若是 int型:sql.add('餐饮信息管理=' + inttostr(qxid[0]));
                ...
                sql.Add(' where 用户名="'+Treeview1.Selected.Text+'"'); //多加个空格
                ExecSQL;
                showmessage('权限设置成功');
      

  3.   

    在ExecSQL;前加句ShowMessage(SQL.Text),在调试状态下查看一下其SQL语句有没有问题