请教如何改写这段代码:(20分)

  • 主题发起人 主题发起人 yedixifeng
  • 开始时间 开始时间
Y

yedixifeng

Unregistered / Unconfirmed
GUEST, unregistred user!
下面是一段修改后保存的代码,如果是25条时,保存不会遇到问题,但30条时保存就遇到提示:定义了过多字段。如何解决呢?谢谢。

procedure Tspzl_form.SpeedButton3Click(Sender: TObject);
begin
with database do
begin
adoq2.Connection := adoc;
adoq2.SQL.Clear;
adoq2.SQL.Add('update spzl set 菜品名称=:gg,拼音简码=:pyjm,简称=:jc,类别=:lb,菜品计量单位=:dw,核定者=:cd,备注=:bz,');
adoq2.SQL.Add('原材料名称1=:spmc1,单价1=:spdj1,单位1=:spdw1,用量1=:spyl1,金额小计1=:jexj1,');
adoq2.SQL.Add('原材料名称2=:spmc2,单价2=:spdj2,单位2=:spdw2,用量2=:spyl2,金额小计2=:jexj2,');
adoq2.SQL.Add('原材料名称3=:spmc3,单价3=:spdj3,单位3=:spdw3,用量3=:spyl3,金额小计3=:jexj3,');
adoq2.SQL.Add('原材料名称4=:spmc4,单价4=:spdj4,单位4=:spdw4,用量4=:spyl4,金额小计4=:jexj4,');
adoq2.SQL.Add('原材料名称5=:spmc5,单价5=:spdj5,单位5=:spdw5,用量5=:spyl5,金额小计5=:jexj5,');
adoq2.SQL.Add('原材料名称6=:spmc6,单价6=:spdj6,单位6=:spdw6,用量6=:spyl6,金额小计6=:jexj6,');
adoq2.SQL.Add('原材料名称7=:spmc7,单价7=:spdj7,单位7=:spdw7,用量7=:spyl7,金额小计7=:jexj7,');
adoq2.SQL.Add('原材料名称8=:spmc8,单价8=:spdj8,单位8=:spdw8,用量8=:spyl8,金额小计8=:jexj8,');
adoq2.SQL.Add('原材料名称9=:spmc9,单价9=:spdj9,单位9=:spdw9,用量9=:spyl9,金额小计9=:jexj9,');
adoq2.SQL.Add('原材料名称10=:spmc10,单价10=:spdj10,单位10=:spdw10,用量10=:spyl10,金额小计10=:jexj10,');
adoq2.SQL.Add('原材料名称11=:spmc11,单价11=:spdj11,单位11=:spdw11,用量11=:spyl11,金额小计11=:jexj11,');
adoq2.SQL.Add('原材料名称12=:spmc12,单价12=:spdj12,单位12=:spdw12,用量12=:spyl12,金额小计12=:jexj12,');
adoq2.SQL.Add('原材料名称13=:spmc13,单价13=:spdj13,单位13=:spdw13,用量13=:spyl13,金额小计13=:jexj13,');
adoq2.SQL.Add('原材料名称14=:spmc14,单价14=:spdj14,单位14=:spdw14,用量14=:spyl14,金额小计14=:jexj14,');
adoq2.SQL.Add('原材料名称15=:spmc15,单价15=:spdj15,单位15=:spdw15,用量15=:spyl15,金额小计15=:jexj15,');
adoq2.SQL.Add('原材料名称16=:spmc16,单价16=:spdj16,单位16=:spdw16,用量16=:spyl16,金额小计16=:jexj16,');
adoq2.SQL.Add('原材料名称17=:spmc17,单价17=:spdj17,单位17=:spdw17,用量17=:spyl17,金额小计17=:jexj17,');
adoq2.SQL.Add('原材料名称18=:spmc18,单价18=:spdj18,单位18=:spdw18,用量18=:spyl18,金额小计18=:jexj18,');
adoq2.SQL.Add('原材料名称19=:spmc19,单价19=:spdj19,单位19=:spdw19,用量19=:spyl19,金额小计19=:jexj19,');
adoq2.SQL.Add('原材料名称20=:spmc20,单价20=:spdj20,单位20=:spdw20,用量20=:spyl20,金额小计20=:jexj20,');
adoq2.SQL.Add('原材料名称21=:spmc21,单价21=:spdj21,单位21=:spdw21,用量21=:spyl21,金额小计21=:jexj21,');
adoq2.SQL.Add('原材料名称22=:spmc22,单价22=:spdj22,单位22=:spdw22,用量22=:spyl22,金额小计22=:jexj22,');
adoq2.SQL.Add('原材料名称23=:spmc23,单价23=:spdj23,单位23=:spdw23,用量23=:spyl23,金额小计23=:jexj23,');
adoq2.SQL.Add('原材料名称24=:spmc24,单价24=:spdj24,单位24=:spdw24,用量24=:spyl24,金额小计24=:jexj24,');
adoq2.SQL.Add('原材料名称25=:spmc25,单价25=:spdj25,单位25=:spdw25,用量25=:spyl25,金额小计25=:jexj25,');
adoq2.SQL.Add('原材料名称26=:spmc26,单价26=:spdj26,单位26=:spdw26,用量26=:spyl26,金额小计26=:jexj26,');
adoq2.SQL.Add('原材料名称27=:spmc27,单价27=:spdj27,单位27=:spdw27,用量27=:spyl27,金额小计27=:jexj27,');
adoq2.SQL.Add('原材料名称28=:spmc28,单价28=:spdj28,单位28=:spdw28,用量28=:spyl28,金额小计28=:jexj28,');
adoq2.SQL.Add('原材料名称29=:spmc29,单价29=:spdj29,单位29=:spdw29,用量29=:spyl29,金额小计29=:jexj29,');
adoq2.SQL.Add('原材料名称30=:spmc30,单价30=:spdj30,单位30=:spdw30,用量30=:spyl30,金额小计30=:jexj30,');
adoq2.SQL.Add('型号=:xh,库存上限=:kcsx,库存下限=:kcxx where 菜品编码=:spbm');
adoq2.parameters.ParamByName('spbm').value := edit1.text;

adoq2.parameters.ParamByName('spmc1').value := edit2.text;
adoq2.parameters.ParamByName('spmc2').value := edit14.text;
adoq2.parameters.ParamByName('spmc3').value := edit17.text;
adoq2.parameters.ParamByName('spmc4').value := edit18.text;
adoq2.parameters.ParamByName('spmc5').value := edit19.text;
adoq2.parameters.ParamByName('spmc6').value := edit20.text;
adoq2.parameters.ParamByName('spmc7').value := edit21.text;
adoq2.parameters.ParamByName('spmc8').value := edit22.text;
adoq2.parameters.ParamByName('spmc9').value := edit23.text;
adoq2.parameters.ParamByName('spmc10').value := edit24.text;
adoq2.parameters.ParamByName('spmc11').value := edit25.text;
adoq2.parameters.ParamByName('spmc12').value := edit26.text;
adoq2.parameters.ParamByName('spmc13').value := edit27.text;
adoq2.parameters.ParamByName('spmc14').value := edit28.text;
adoq2.parameters.ParamByName('spmc15').value := edit29.text;
adoq2.parameters.ParamByName('spmc16').value := edit85.text;
adoq2.parameters.ParamByName('spmc17').value := edit83.text;
adoq2.parameters.ParamByName('spmc18').value := edit86.text;
adoq2.parameters.ParamByName('spmc19').value := edit84.text;
adoq2.parameters.ParamByName('spmc20').value := edit87.text;
adoq2.parameters.ParamByName('spmc21').value := edit93.text;
adoq2.parameters.ParamByName('spmc22').value := edit94.text;
adoq2.parameters.ParamByName('spmc23').value := edit95.text;
adoq2.parameters.ParamByName('spmc24').value := edit96.text;
adoq2.parameters.ParamByName('spmc25').value := edit97.text;
adoq2.parameters.ParamByName('spmc26').value := edit98.text;
adoq2.parameters.ParamByName('spmc27').value := edit99.text;
adoq2.parameters.ParamByName('spmc28').value := edit100.text;
adoq2.parameters.ParamByName('spmc29').value := edit101.text;
adoq2.parameters.ParamByName('spmc30').value := edit102.text;

adoq2.parameters.ParamByName('spyl1').value := edit15.text;
adoq2.parameters.ParamByName('spyl2').value := edit16.text;
adoq2.parameters.ParamByName('spyl3').value := edit30.text;
adoq2.parameters.ParamByName('spyl4').value := edit31.text;
adoq2.parameters.ParamByName('spyl5').value := edit32.text;
adoq2.parameters.ParamByName('spyl6').value := edit33.text;
adoq2.parameters.ParamByName('spyl7').value := edit34.text;
adoq2.parameters.ParamByName('spyl8').value := edit35.text;
adoq2.parameters.ParamByName('spyl9').value := edit36.text;
adoq2.parameters.ParamByName('spyl10').value := edit37.text;
adoq2.parameters.ParamByName('spyl11').value := edit38.text;
adoq2.parameters.ParamByName('spyl12').value := edit39.text;
adoq2.parameters.ParamByName('spyl13').value := edit40.text;
adoq2.parameters.ParamByName('spyl14').value := edit41.text;
adoq2.parameters.ParamByName('spyl15').value := edit42.text;
adoq2.parameters.ParamByName('spyl16').value := edit90.text;
adoq2.parameters.ParamByName('spyl17').value := edit88.text;
adoq2.parameters.ParamByName('spyl18').value := edit91.text;
adoq2.parameters.ParamByName('spyl19').value := edit89.text;
adoq2.parameters.ParamByName('spyl20').value := edit92.text;
adoq2.parameters.ParamByName('spyl21').value := edit113.text;
adoq2.parameters.ParamByName('spyl22').value := edit114.text;
adoq2.parameters.ParamByName('spyl23').value := edit115.text;
adoq2.parameters.ParamByName('spyl24').value := edit116.text;
adoq2.parameters.ParamByName('spyl25').value := edit117.text;
adoq2.parameters.ParamByName('spyl26').value := edit118.text;
adoq2.parameters.ParamByName('spyl27').value := edit119.text;
adoq2.parameters.ParamByName('spyl28').value := edit120.text;
adoq2.parameters.ParamByName('spyl29').value := edit121.text;
adoq2.parameters.ParamByName('spyl30').value := edit122.text;

adoq2.parameters.ParamByName('spdj1').value := edit43.text;
adoq2.parameters.ParamByName('spdj2').value := edit45.text;
adoq2.parameters.ParamByName('spdj3').value := edit47.text;
adoq2.parameters.ParamByName('spdj4').value := edit56.text;
adoq2.parameters.ParamByName('spdj5').value := edit48.text;
adoq2.parameters.ParamByName('spdj6').value := edit57.text;
adoq2.parameters.ParamByName('spdj7').value := edit49.text;
adoq2.parameters.ParamByName('spdj8').value := edit58.text;
adoq2.parameters.ParamByName('spdj9').value := edit50.text;
adoq2.parameters.ParamByName('spdj10').value := edit59.text;
adoq2.parameters.ParamByName('spdj11').value := edit51.text;
adoq2.parameters.ParamByName('spdj12').value := edit60.text;
adoq2.parameters.ParamByName('spdj13').value := edit52.text;
adoq2.parameters.ParamByName('spdj14').value := edit61.text;
adoq2.parameters.ParamByName('spdj15').value := edit53.text;
adoq2.parameters.ParamByName('spdj16').value := edit62.text;
adoq2.parameters.ParamByName('spdj17').value := edit54.text;
adoq2.parameters.ParamByName('spdj18').value := edit63.text;
adoq2.parameters.ParamByName('spdj19').value := edit55.text;
adoq2.parameters.ParamByName('spdj20').value := edit64.text;
adoq2.parameters.ParamByName('spdj21').value := edit103.text;
adoq2.parameters.ParamByName('spdj22').value := edit104.text;
adoq2.parameters.ParamByName('spdj23').value := edit105.text;
adoq2.parameters.ParamByName('spdj24').value := edit106.text;
adoq2.parameters.ParamByName('spdj25').value := edit107.text;
adoq2.parameters.ParamByName('spdj26').value := edit108.text;
adoq2.parameters.ParamByName('spdj27').value := edit109.text;
adoq2.parameters.ParamByName('spdj28').value := edit110.text;
adoq2.parameters.ParamByName('spdj29').value := edit111.text;
adoq2.parameters.ParamByName('spdj30').value := edit112.text;

adoq2.parameters.ParamByName('spdw1').value := ComboBox1.text;
adoq2.parameters.ParamByName('spdw2').value := ComboBox2.text;
adoq2.parameters.ParamByName('spdw3').value := ComboBox3.text;
adoq2.parameters.ParamByName('spdw4').value := ComboBox12.text;
adoq2.parameters.ParamByName('spdw5').value := ComboBox4.text;
adoq2.parameters.ParamByName('spdw6').value := ComboBox13.text;
adoq2.parameters.ParamByName('spdw7').value := ComboBox5.text;
adoq2.parameters.ParamByName('spdw8').value := ComboBox14.text;
adoq2.parameters.ParamByName('spdw9').value := ComboBox6.text;
adoq2.parameters.ParamByName('spdw10').value := ComboBox15.text;
adoq2.parameters.ParamByName('spdw11').value := ComboBox7.text;
adoq2.parameters.ParamByName('spdw12').value := ComboBox16.text;
adoq2.parameters.ParamByName('spdw13').value := ComboBox8.text;
adoq2.parameters.ParamByName('spdw14').value := ComboBox17.text;
adoq2.parameters.ParamByName('spdw15').value := ComboBox9.text;
adoq2.parameters.ParamByName('spdw16').value := ComboBox18.text;
adoq2.parameters.ParamByName('spdw17').value := ComboBox10.text;
adoq2.parameters.ParamByName('spdw18').value := ComboBox19.text;
adoq2.parameters.ParamByName('spdw19').value := ComboBox11.text;
adoq2.parameters.ParamByName('spdw20').value := ComboBox20.text;
adoq2.parameters.ParamByName('spdw21').value := ComboBox21.text;
adoq2.parameters.ParamByName('spdw22').value := ComboBox22.text;
adoq2.parameters.ParamByName('spdw23').value := ComboBox23.text;
adoq2.parameters.ParamByName('spdw24').value := ComboBox24.text;
adoq2.parameters.ParamByName('spdw25').value := ComboBox25.text;
adoq2.parameters.ParamByName('spdw26').value := ComboBox26.text;
adoq2.parameters.ParamByName('spdw27').value := ComboBox27.text;
adoq2.parameters.ParamByName('spdw28').value := ComboBox28.text;
adoq2.parameters.ParamByName('spdw29').value := ComboBox29.text;
adoq2.parameters.ParamByName('spdw30').value := ComboBox30.text;


adoq2.parameters.ParamByName('jexj1').value := edit44.text;
adoq2.parameters.ParamByName('jexj2').value := edit46.text;
adoq2.parameters.ParamByName('jexj3').value := edit65.text;
adoq2.parameters.ParamByName('jexj4').value := edit74.text;
adoq2.parameters.ParamByName('jexj5').value := edit66.text;
adoq2.parameters.ParamByName('jexj6').value := edit75.text;
adoq2.parameters.ParamByName('jexj7').value := edit67.text;
adoq2.parameters.ParamByName('jexj8').value := edit76.text;
adoq2.parameters.ParamByName('jexj9').value := edit68.text;
adoq2.parameters.ParamByName('jexj10').value := edit77.text;
adoq2.parameters.ParamByName('jexj11').value := edit69.text;
adoq2.parameters.ParamByName('jexj12').value := edit78.text;
adoq2.parameters.ParamByName('jexj13').value := edit70.text;
adoq2.parameters.ParamByName('jexj14').value := edit79.text;
adoq2.parameters.ParamByName('jexj15').value := edit71.text;
adoq2.parameters.ParamByName('jexj16').value := edit80.text;
adoq2.parameters.ParamByName('jexj17').value := edit72.text;
adoq2.parameters.ParamByName('jexj18').value := edit81.text;
adoq2.parameters.ParamByName('jexj19').value := edit73.text;
adoq2.parameters.ParamByName('jexj20').value := edit82.text;
adoq2.parameters.ParamByName('jexj21').value := edit123.text;
adoq2.parameters.ParamByName('jexj22').value := edit124.text;
adoq2.parameters.ParamByName('jexj23').value := edit125.text;
adoq2.parameters.ParamByName('jexj24').value := edit126.text;
adoq2.parameters.ParamByName('jexj25').value := edit127.text;
adoq2.parameters.ParamByName('jexj26').value := edit128.text;
adoq2.parameters.ParamByName('jexj27').value := edit129.text;
adoq2.parameters.ParamByName('jexj28').value := edit130.text;
adoq2.parameters.ParamByName('jexj29').value := edit131.text;
adoq2.parameters.ParamByName('jexj30').value := edit132.text;


adoq2.parameters.ParamByName('pyjm').value := edit3.text;
adoq2.Parameters.ParamByName('jc').Value := edit4.Text;
adoq2.Parameters.ParamByName('lb').Value := edit5.text;
adoq2.parameters.ParamByName('gg').value := edit6.text;
adoq2.parameters.ParamByName('xh').value := edit7.text;
adoq2.parameters.ParamByName('dw').value := edit8.text;
adoq2.Parameters.ParamByName('cd').Value := edit9.Text;
adoq2.Parameters.ParamByName('bz').Value := edit10.text;
adoq2.parameters.ParamByName('kcsx').value := edit11.text;
adoq2.parameters.ParamByName('kcxx').value := edit12.text;
adoq2.ExecSQL;
adoq2.SQL.Clear;
adoq2.SQL.Add('select * from spzl');
adoq2.Active := true;
datas1.DataSet := adoq2;
dbgrid1.DataSource := datas1;
statusbar1.Panels[1].Text := inttostr(adoq2.Recordset.RecordCount);
edit2.Clear; edit3.Clear; edit4.clear; edit5.Clear; edit6.Text;
edit7.Clear; edit8.Clear; edit9.Clear; edit10.clear; edit14.clear; edit15.clear; edit16.clear;

edit17.Clear; edit18.Clear; edit19.Clear; edit20.clear; edit21.clear; edit22.clear; edit23.clear;
edit24.Clear; edit25.Clear; edit26.Clear; edit27.clear; edit28.clear; edit29.clear; edit30.clear;
edit31.Clear; edit32.Clear; edit33.Clear; edit34.clear; edit35.clear; edit36.clear; edit37.clear;
edit38.Clear; edit39.Clear; edit40.Clear; edit41.clear; edit42.clear;
edit83.Clear; edit84.Clear; edit85.Clear; edit86.clear; edit87.clear;
edit88.Clear; edit89.Clear; edit90.Clear; edit91.clear; edit92.clear;

edit43.Clear; edit45.Clear; edit47.Clear; edit48.clear; edit49.clear;
edit50.Clear; edit51.Clear; edit52.Clear; edit53.clear; edit54.clear;
edit55.Clear; edit56.Clear; edit57.Clear; edit58.clear; edit59.clear;
edit60.Clear; edit61.Clear; edit62.Clear; edit63.clear; edit64.clear;

ComboBox1.Clear; ComboBox2.Clear; ComboBox3.Clear; ComboBox4.clear; ComboBox5.clear;
ComboBox6.Clear; ComboBox7.Clear; ComboBox8.Clear; ComboBox9.clear; ComboBox10.clear;
ComboBox11.Clear; ComboBox12.Clear; ComboBox13.Clear; ComboBox14.clear; ComboBox15.clear;
ComboBox16.Clear; ComboBox17.Clear; ComboBox18.Clear; ComboBox19.clear; ComboBox20.clear;
ComboBox21.Clear; ComboBox22.Clear; ComboBox23.Clear; ComboBox24.clear; ComboBox25.clear;
ComboBox26.Clear; ComboBox27.Clear; ComboBox28.Clear; ComboBox29.clear; ComboBox30.clear;

edit44.Clear; edit46.Clear; edit65.Clear; edit66.clear; edit67.clear;
edit68.Clear; edit69.Clear; edit70.Clear; edit71.clear; edit72.clear;
edit73.Clear; edit74.Clear; edit75.Clear; edit76.clear; edit77.clear;
edit78.Clear; edit79.Clear; edit80.Clear; edit81.clear; edit82.clear;

edit93.Clear; edit94.Clear; edit95.Clear; edit96.clear; edit97.clear;
edit98.Clear; edit99.Clear; edit100.Clear; edit101.clear; edit102.clear;
edit103.Clear; edit104.Clear; edit105.Clear; edit106.clear; edit107.clear;
edit108.Clear; edit109.Clear; edit110.Clear; edit111.clear; edit112.clear;
edit113.Clear; edit114.Clear; edit115.Clear; edit116.clear; edit117.clear;
edit118.Clear; edit119.Clear; edit120.Clear; edit121.clear; edit122.clear;
edit123.Clear; edit124.Clear; edit125.Clear; edit126.clear; edit127.clear;
edit128.Clear; edit129.Clear; edit130.Clear; edit131.clear; edit132.clear;

edit11.Text := '0'; edit12.Text := '0';
edit1.SetFocus;
edit1.ReadOnly := false;
speedbutton15.Enabled := true;
speedbutton17.Enabled := true;
end;
end;
 
我的神呀,清汤挂面呀这是!
 
俺地老天爷呀,清汤拉面呀
 
我的妈呀,这是清汤粉丝啊
 
倒!!你这也叫项目?
不被老总T了也得被骂死去!!
 
哇!这表是怎么设计的?!
 
君不见飞流直下三千尺 疑似银河落九天
看来编写一个程序就是为了让一些复杂的操作简单化这句话值得推敲
嘎嘎嘎
 
路过,看拉面。。。
 
是没有设计好的缘故吧?为什么就不考虑把复杂问题简单化呢,分模块各个击破就是了
 
令我最佩服的是。。。这么多的adoq2都不用with do, 用了个跨度这么大的with database do,只为了adoq2.Connection := adoc;这一句(如果这个adoc是database的属性的话)。。。。
 
新手上路不容易
 
建议建立主从表结构,你这样的结构如果某个菜单原材料少于30 就要浪费不少字段,如果多于30个又要修改增加原材料信息字段
建议修改成
主表为 菜单基本信息(菜品编码,菜品名称,拼音简码,简称,类别,菜品计量单位,核定者,备注,型号,库存上限,库存下限)
细表为(菜品编码,原材料名称,单价,单位,用量,金额小计)
通过 菜品编码 进行关联
 
设计一个主从表就可以解决问题啊,
主表:
菜品编码,菜品名称,型号,拼音简码,简称,类别,菜品计量单位,核定者,备注,库存上限,库存下限
从表:
菜品编码,原材料名称,单价,单位,用量,金额小计
 
这个是不是自己练习用的东西啊?这样赋值要是有10000条记录还不得累个半死啊
要是在公司这些代码只能给你50行的钱,还得被人鄙视一下
 
表设计不合理.那有你这么设计的.
 
天哪!!!!LZ真是牛人呀!!!!
 
晕   好长的代码  用类吧
或者 考虑用个循环
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
550
import
I
后退
顶部