UserComponent:=GetComponent(Fun_Form.TempForm,'Computer_ADO',TADOQuery);
//-------------------------------------------------------------------------
With TADOQuery(UserComponent) do
begin
  if Client_info_Browser.State='insert' then Append;
  if Client_info_Browser.State='update' then Edit;
  FieldByName('C_code').Value:=Client_Code.text;  //这里有时出现  为什么啊???虽然不影响程序运行。
  FieldByName('C_name').Value:=Client_Name.Text;//这里有时出现误,但是我相知到怎么回是。友人说ADO有BUG
  FieldByName('C_use').Value:=YongTu.Text;//这里有时出现未知错误, 我想知道具体原因
  FieldByName('C_tran').Value:=Tran;//这里有时出现未知错误,
  FieldByName('C_state').Value:=zx;//这里有时出现未知错误,
  FieldByName('C_stop').Value:=stop;//这里有时出现未知错误,
  FieldByName('C_bz').Value:=Beizhu.Text;//这里有时出现未知错误,
  if LX_checked.Checked then //连续状态
  begin
       Post;
       Client_Code.Text:='';
       Client_Name.Text:='';
       YongTu.Text:='';
       Beizhu.Text:='';
       Client_Code.SetFocus;
  end
  else
  begin
       Post;
       Cancel_Bit.Click;
  end;
end;

解决方案 »

  1.   

    FieldByName('C_code').Value即是TField.Value,TField.Value是Variant类型,我觉得问题有可能就出在这里。你可以这样试一下:你明确地给各种类型的字段赋上相应类型的值。比如你的代码改作如下:
    ......
      FieldByName('C_code').AsString:=Client_Code.text;
      FieldByName('C_name').AsString:=Client_Name.Text;
      FieldByName('C_use').AsString:=YongTu.Text;//这里有时出现未知错误, 我想知道具体原因 
      FieldByName('C_tran').Value:=Tran;//这里我不知道Tran变量是什么类型,所以不知道字段的类型,你自己可以
                                             //根据实际情况用AsInteger、AsFloat等。
      FieldByName('C_state').Value:=zx;//同上 
      FieldByName('C_stop').Value:=stop;//同上
      FieldByName('C_bz').AsString:=Beizhu.Text;
    ......
      

  2.   

    无论是Value  还是 Asstring 或Asintger等按照类型进行存储,都是一样。
    楼上的师傅,这个方法眉宇解决,
    var Tran 是 String类型。   总是未知错误。运行时没有事。调试时提示。
      

  3.   

    把其他的FieldByName暂时都去掉只留
     FieldByName('C_use').AsString:=YongTu.Text;//这里有时出现未知错误, 我想知道具体原因  然后运行调试一下
      

  4.   

    运行中没有报错的看程序是不是用了try except 方法,把错误屏蔽了
      

  5.   

    以上都实验过了。不行啊。我没有用Try Except方法屏蔽。