这个问题有点难,想不通,有人能帮我解一解吗

                            
我在一个地方使用数据表,当只要使用了SQL.CLEAR;   SQL.ADD(select...)就影响到整个项目的其它地方向这个数据表的字段的取值和赋值,并显示找不到相关的字段,   
          我理解的是在我SQL.CLEAR;   SQL.ADD(select...)后,将原有adoquery中的SQL语句给更改为SQL.CLEAR;   SQL.ADD(select...)现在语句了,因此就取不到值了,如果是这样的话,那我怎样在一段代码中使用了更改的SQL语句之后,就立即的恢复初始设定的SQL语句,从而不影响后面的取值和赋值呢,如果不是我理解的这样,请走过路过的大师们能给解释一下为何吗。下面为一个例子:  
  -------------------------------------------------------------------------------------  
  begin  
  with   mindatamodule.adolog   do  
  begin  
  close;  
  sql.Clear;  
  sql.Add('select   permit   from   tuser   where   login='+char(39)+landingfrm.landedt1.Text+char(39));  
  open;  
  astr:=mindatamodule.adolog.FieldValues['permit'];  
  if   astr[3]='1'   then  
    (actionlist1.Actions[1]   as   taction).Enabled:=true  
  else  
    (actionlist1.Actions[1]   as   taction).Enabled:=false;  
    if   astr[2]='1'   then  
    (actionlist1.Actions[2]   as   taction).Enabled:=true  
    else  
    (actionlist1.Actions[3]   as   taction).Enabled:=false;  
  ...  
    close;  
  end;  
  ------------------------------------------------------------------------------  
  var  
  ditem:tlistitem;  
  j:integer;  
    begin  
        with   mindatamodule.adolog   do  
        begin  
        open;  
        first;  
        repeat  
        j:=j+1;  
        ditem:=listview4.Items.add;  
        ditem.Caption:=fieldbyname('userid').AsString;  
        ditem.SubItems.Add(fieldbyname('username').AsString);  
        ditem.SubItems.Add(fieldbyname('userdept').AsString);  
        ditem.SubItems.Add(fieldbyname('login').AsString);  
        next;  
        until  
        eof;  
  end;  
  只要一运行了第一节的代码,运行到第二节时即提示找到不相应字段(如‘userid'),同时如有是插入值的话也这样的提示错误。不解,现在我的程序许多这样的冲突,急盼指教!!!,本人在线急等!!!  
 

查看回复