if edit1.text=adoquery1.fieldbyname('dw').value then
........这样写正确吗?

解决方案 »

  1.   

    adoquery1.fieldbyname('dw').asstring最后加个trim去除前后空格
      

  2.   

    还是直接指定类型吧,value容易出错
      

  3.   

    procedure Ttyfform.btnOkClick(Sender: TObject);begin
    with adoquery2 do
    begin
    close;
    sql.clear;
    sql.add('update 统一发放管理 set 姓名=:a,部门=:b,工种=:c,配件编号=:d,名称=:e,规格=:e,
    单位=:f,单价=:g,数量=:h,总价=:h,发放日期=:i,发放人员:=j,备注=:k where trim(edit8.text)=trim(adoquery3.fieldByName('部门').asstring)')  //Illegal character in input file:'部'
    parameters.paramByName('a').value :=trim(adoquery3.fieldByName('姓名').asstring);
    parameters.paramByName('b').value :=trim(adoquery3.fieldByName('部门').asstring);
    parameters.paramByName('c').value :=trim(adoquery3.fieldByName('工种').asstring);
    parameters.paramByName('e').value :=trim(edit2.Text);
    execsql;
    end;
      end;
      

  4.   

     where trim(edit8.text)=trim(adoquery3.fieldByName('部门').asstring)
    改为 where trim(edit8.text)='''+trim(adoquery3.fieldByName('部门').asstring)+''''试试
      

  5.   

    恩。可以了。但是运行起来还是有错。麻烦你们帮我看下。那里有问题!他提示adoquery3:cannot perform this operation on a closed dataset
      

  6.   

    晕,那是你的adoquery3没有打开啊。
    你应该多看书啊
      

  7.   


    begin
    with adoquery2 do
    begin
    adoquery3.close;
    adoquery3.SQL.Clear;
     adoquery3.sql.Add('select * from 职员基本信息表');
    close;
    sql.clear;
    sql.add('update 统一发放管理 set 姓名=:a,部门=:b,工种=:c,配件编号=:d,名称=:e,规格=:e,单位=:f,单价=:g,数量=:h,总价=:h,发放日期=:i,发放人员:=j,备注=:k where trim(edit8.text)='''+trim(adoquery3.fieldByName('部门').asstring)+'''');
    parameters.paramByName('a').value :=trim(adoquery3.fieldByName('姓名').asstring);
    parameters.paramByName('b').value :=trim(adoquery3.fieldByName('部门').asstring);
    parameters.paramByName('c').value :=trim(adoquery3.fieldByName('工种').asstring);
    parameters.paramByName('e').value :=trim(edit2.Text);
    execsql;
    adoquery3.open;
    end;
      end;
    提示adoquery field '部门' not found 职员信息表里有部门字段啊。
      

  8.   

    begin 
    with adoquery2 do 
    begin 
    adoquery3.close; 
    adoquery3.SQL.Clear; 
    adoquery3.sql.Add('select * from 职员基本信息表'); 
    adoquery3.open;  //放在这里,打开了才能用
    close; 
    sql.clear; 
    sql.add('update 统一发放管理 set 姓名=:a,部门=:b,工种=:c,配件编号=:d,名称=:e,规格=:e,单位=:f,单价=:g,数量=:h,总价=:h,发放日期=:i,发放人员:=j,备注=:k where trim(edit8.text)='''+trim(adoquery3.fieldByName('部门').asstring)+''''); 
    parameters.paramByName('a').value :=trim(adoquery3.fieldByName('姓名').asstring); 
    parameters.paramByName('b').value :=trim(adoquery3.fieldByName('部门').asstring); 
    parameters.paramByName('c').value :=trim(adoquery3.fieldByName('工种').asstring); 
    parameters.paramByName('e').value :=trim(edit2.Text); 
    execsql; 
    //adoquery3.open;//---这句要放在前面
    end; 
      end; 
      

  9.   

    我数据库里的字段都是字符串型的啊。varchar
      

  10.   


    if trim(edit1.text)=adoquery1.fieldbyname('dw').value then