我用dbgrid录入数据,然后在ADOQuery1的AfterScroll作如下判断,结果总是得不到正确的效果!
procedure TfrmStockPlan.RsStockPlanAfterScroll(DataSet: TDataSet);
var
  eFlag:boolean;
begin
  eFlag:=false;
  with dataset do
  begin
    if FieldValues['provider']=Null then eFlag:=true;   
    if FieldValues['provider']='' then eFlag:=true;  
    //用上面两种方式做判断都得不到正确结果,要怎么才能知道该字段有没输入内容
    if eFlag then
    begin
      showmessage('资料录入不完整!');
      PostMessage(StockPlanList.Handle, WM_KEYDOWN, VK_ESCAPE, 0);
    end;
  end;
end;

解决方案 »

  1.   

    if fieldbyname('provider').asstring ='' then
      

  2.   

    Null 是没有输东西,''是输入了空格;两者是不一样的
      

  3.   

    ''是NULL STRING,' '才是空格!
      

  4.   

    谢谢楼上两位,现在判断是正确了,但是如果输入有误时,用
    PostMessage(StockPlanList.Handle, WM_KEYDOWN, VK_ESCAPE, 0);
    模拟按下ESC键取消,返加刚刚编辑的那一行,可确执行了四次showmessage('资料录入不完整!');有什么办法解决吗?