if ClientADOQuery<>nil then
       begin
           ClientADOQuery.Close;
           ClientADOQuery.SQL.Clear;
         ClientADOQuery.SQL.Add('select * from '+TrueMemo.Lines.Strings[i]);
          ClientADOQuery.SQL.Add('where '+ZhuJMemo.Lines.Strings[0]                     +'='+ClientDataMemo.Lines.Strings[z1]);
                          try
                             ClientADOQuery.Open;
                          except
                               showmessage('failure');
                          end;
                     end;
我是这样写进程序的,可是系统报‘=’周围有语法错误,请问这是什么原因

解决方案 »

  1.   

    你可以跟踪一下:ClientADOQuery.sql.text
    看看问题出在哪儿?
    ctrl+f7
      

  2.   

    你在where前面加个空格;
    还有,如果字段是字符类型加引号。
     ClientADOQuery.SQL.Add(' where '+ZhuJMemo.Lines.Strings[0]                     +'='''+ClientDataMemo.Lines.Strings[z1]+'''');你试试看吧。
      

  3.   

    当我改成ClientADOQuery.SQL.Add(' where '+ZhuJMemo.Lines.Strings[0]+'='''+ClientDataMemo.Lines.Strings[z1]+'''');时又出现‘非空列不能更新为NULL’的错误
      

  4.   

    确认ClientDataMemo.Lines.Strings[z1] 有值,不要为空
      

  5.   

    楼主这样写一下试试...加了一个isnullClientADOQuery.SQL.Add(' where '+isnull(ZhuJMemo.Lines.Strings[0],''''+'='''+ClientDataMemo.Lines.Strings[z1]+'''');
      

  6.   

    ClientADOQuery.SQL.Add('select * from '+TrueMemo.Lines.Strings[i]);
              ClientADOQuery.SQL.Add(' where '+ZhuJMemo.Lines.String[0]
                         +'='''+ClientDataMemo.Lines.Strings[z1])+'''';//1:where 前面少个空格
      2:字段内容是字符串的话,需要引号的。