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;
where trim(edit8.text)=trim(adoquery3.fieldByName('部门').asstring) 改为 where trim(edit8.text)='''+trim(adoquery3.fieldByName('部门').asstring)+''''试试
恩。可以了。但是运行起来还是有错。麻烦你们帮我看下。那里有问题!他提示adoquery3:cannot perform this operation on a closed dataset
晕,那是你的adoquery3没有打开啊。 你应该多看书啊
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 职员信息表里有部门字段啊。
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;
我数据库里的字段都是字符串型的啊。varchar
if trim(edit1.text)=adoquery1.fieldbyname('dw').value then
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;
改为 where trim(edit8.text)='''+trim(adoquery3.fieldByName('部门').asstring)+''''试试
你应该多看书啊
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 职员信息表里有部门字段啊。
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;
if trim(edit1.text)=adoquery1.fieldbyname('dw').value then