procedure TFormsdxxgl.Button5Click(Sender: TObject);
var
id:integer;
begin   //保存按钮 保存到运单表中
  //取出对应客户编号,以便保存到运单
  dm.khjcxx.Close;
  dm.khjcxx.CommandText:='select * from khjcxx where 客户姓名='''+dbcombobox8.text+'''';
  dm.khjcxx.Open;
  id:=dm.khjcxx.fieldbyname('客户编号').AsInteger;
  if not(dm.ydb.State=dsedit) then
  dm.ydb.Edit;
  dm.ydb.Fieldbyname('状态').Value:='已开未发';
  dm.ydb.FieldByName('客户编号').Value:=id;
  dm.ydb.Post;
  button1.Enabled:=true;
  button5.Enabled:=false;
  button6.Enabled:=false;
  bitbtn1.Enabled:=true;
end;
错误提示cannot access field '客户编号'as type variant
在客户基础信息表(khjcxx)中把客户编号作为了bigint自动编号的类型,在运单表中把客户编号作为外码,类型为bigint,这段代码是保存运单的代码

解决方案 »

  1.   

    procedure TFormsdxxgl.Button5Click(Sender: TObject); 
    var 
    StrID:String; //
    begin   //保存按钮 保存到运单表中 
      //取出对应客户编号,以便保存到运单 
      dm.khjcxx.Close; 
      dm.khjcxx.CommandText:='select * from khjcxx where 客户姓名='''+dbcombobox8.text+''''; 
      dm.khjcxx.Open; 
      StrID:=dm.khjcxx.fieldbyname('客户编号').AsString; 
      if not(dm.ydb.State=dsedit) then 
      dm.ydb.Edit; 
      dm.ydb.Fieldbyname('状态').Value:='已开未发'; 
      dm.ydb.FieldByName('客户编号').AsString:=StrID; 
      dm.ydb.Post; 
      button1.Enabled:=true; 
      button5.Enabled:=false; 
      button6.Enabled:=false; 
      bitbtn1.Enabled:=true; 
    end; try!!
    bigint映射到DataSet中是TBlobField