我用的是ACCESS ,请问怎么把空值作为条件???
如:
  with adoquery1 do
  begin
    close;
    sql.Clear;
    sql.Add('update cpk set ddh='''+edit1.text+''' where (ddh='')');
    open;
    adoquery1.ExecSQL;
  end;系统提示SQL语句错误!
请问各位大吓们,在ADOQUERY里的参数要怎么写才是正确的, 还有空值问题?????

解决方案 »

  1.   

    上面那个open;  没有的,我写错了。
      

  2.   

    我用的是ACCESS ,请问怎么把空值作为条件???
    如:
      with adoquery1 do
      begin
        close;
        sql.Clear;
        sql.Add('update cpk set ddh='''+edit1.text+''' where (ddh='')');
        adoquery1.ExecSQL;
      end;系统提示SQL语句错误!
    请问各位大吓们,在ADOQUERY里的参数要怎么写才是正确的, 还有空值问题?????
      

  3.   

    with adoquery1 do
      begin
        close;
        sql.Clear;
        sql.Add('update cpk set ddh='''+edit1.text+'''' );
        sql.add('where (ddh='')');
        adoquery1.ExecSQL;
      end;
      

  4.   

    with adoquery1 do
      begin
        close;
        sql.Clear;
        sql.Add('update cpk set ddh=:'''+edit1.text+'''' );
        sql.add('where (ddh='')');
        adoquery1.ExecSQL;
      end;
      

  5.   

    还是增加不进数据去,
    可能是sql.add('where (ddh='')');这条语句没有走作用,倒底要怎么表示空值呢???
      

  6.   

    close;
        sql.Clear;
        sql.Add('update cpk set ddh=:'''+edit1.text+'''' );
        sql.add('where (ddh='''' or ddh is null)');
        adoquery1.ExecSQL;
      

  7.   

    sql.text:='update cpk set ddh= '+#39+edit1.text+#39+' where (ddh='+#39+''+#39+')';
      

  8.   

    多谢以上两位大哥,可是仍然没有解决,看来我无缘用上SQL语句啦!好可惜啊,郁闷中!!!
    with qdoquery1 do
    begin
      for i := 1 to adoquery2.Recordset.RecordCount do
          begin
            edit;
            FieldByName('ddh').AsString := edit1.Text;
            post;
            next;
          end;
    end;
      

  9.   

    难道只有用上我面的方法吗?真的不想用上面的方法,好慢啊,我想用SQL方法该怎么写啊?
      

  10.   

    不明白你想干什么?为什么要加一个循环?next是干什么?
      

  11.   

    那是因为有多条记录要增加,所以得用NEXT啊,不然就只是增加了一条,
    close;
        sql.Clear;
        sql.Add('update cpk set ddh=:'''+edit1.text+'''' );
        sql.add('where (ddh='''' or ddh is null)');
        adoquery1.ExecSQL;
    为什么上面的SQL语句增加不进去,而下面的又可以查找得到啊,都是以where (ddh=''''or ddh is null) 它作为条件的啊?? 真晕倒啊sql.Add('select artno,packing,gg from lsyscp where (ddh=''''or ddh is null)');
      

  12.   

    郁闷中!!!!!!
    在ACCESS中空值能够在查询的时候可以判断出来,可是增加的时候就不能判断来??????sql.Add('select artno,packing,gg from lsyscp where (ddh=''''or ddh is null)');
    上面没有问题可以找到ddh为空的所有记录。
    close;
        sql.Clear;
        sql.Add('update cpk set ddh=:'''+edit1.text+'''' );
        sql.add('where (ddh='''' or ddh is null)');
        adoquery1.ExecSQL;
    而上面的这条更新语句却不能给ddh为空的记录,将ddh的值改为Edit1.text的值,问题所在哪里???