我现在定义了一个字符串类型的变量V1,想把adoquery1中查询出的数据集中的某一个字段f1的值赋给它,我现在的语句是这样的v1:=AdoQuery1.FieldByName('f1').AsString,可是如果f1是空值的时候会报错,现在我想把空值转成'0'或者其它字符,请问这个怎样转换?不能在SQL语句中用isnull函数,我想用delphi中的函数,谢谢大家的帮助,谢谢!!

解决方案 »

  1.   

    if trim(AdoQuery1.FieldByName('f1').AsString)='' then V1:='';
      

  2.   

    if trim(AdoQuery1.FieldByName('f1').AsString)='' then V1:='0';
      

  3.   

    我用下面代码做的测试,表中字段分别为guojia ,she,shi,都是整形,我只添加了guojia的代码,读取shi的时候,不报错,读的就是空
    procedure TForm1.Button2Click(Sender: TObject);
    var
     s : string;
    begin
      with ADOTable1 do
      begin
        if not Active then Open;
        Insert;
        FieldByName('guojia').Value := 7;
        Post;
      end;
         adotable1.Open;
       if ADOTable1.Locate('guojia',7,[loCaseInsensitive]) then     s:=ADOTable1.FieldByName('shi').AsString;
         showmessage(s);
    end;
      

  4.   

    自已写个函数嘛`~`function TForm1.NulltoZore(s: string): string;
    begin
      if trim(s)='' then
        Result :='0'
      else
        Result:=s;
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      ShowMessage(NulltoZore(edit1.text));
    end;