我用的是ACCESS ,请问怎么把空值作为条件???
如:
with adoquery1 do
begin
close;
sql.Clear;
sql.Add('update cpk set ddh='''+edit1.text+''' where (ddh='')');
open;
adoquery1.ExecSQL;
end;系统提示SQL语句错误!
请问各位大吓们,在ADOQUERY里的参数要怎么写才是正确的, 还有空值问题?????
如:
with adoquery1 do
begin
close;
sql.Clear;
sql.Add('update cpk set ddh='''+edit1.text+''' where (ddh='')');
open;
adoquery1.ExecSQL;
end;系统提示SQL语句错误!
请问各位大吓们,在ADOQUERY里的参数要怎么写才是正确的, 还有空值问题?????
如:
with adoquery1 do
begin
close;
sql.Clear;
sql.Add('update cpk set ddh='''+edit1.text+''' where (ddh='')');
adoquery1.ExecSQL;
end;系统提示SQL语句错误!
请问各位大吓们,在ADOQUERY里的参数要怎么写才是正确的, 还有空值问题?????
begin
close;
sql.Clear;
sql.Add('update cpk set ddh='''+edit1.text+'''' );
sql.add('where (ddh='')');
adoquery1.ExecSQL;
end;
begin
close;
sql.Clear;
sql.Add('update cpk set ddh=:'''+edit1.text+'''' );
sql.add('where (ddh='')');
adoquery1.ExecSQL;
end;
可能是sql.add('where (ddh='')');这条语句没有走作用,倒底要怎么表示空值呢???
sql.Clear;
sql.Add('update cpk set ddh=:'''+edit1.text+'''' );
sql.add('where (ddh='''' or ddh is null)');
adoquery1.ExecSQL;
with qdoquery1 do
begin
for i := 1 to adoquery2.Recordset.RecordCount do
begin
edit;
FieldByName('ddh').AsString := edit1.Text;
post;
next;
end;
end;
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)');
在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的值,问题所在哪里???