我用下面的语句来添加记录,有一个问题就是只有所有字段都赋值的时候,记录才能加入.而我希望只要某几个字段赋值就能添加,请问一下该怎么办?
procedure Tf_addperson.saveClick(Sender: TObject);
begin
mainform.adoconnection1.begintrans;
try
adoquery1.sql.clear;
adoquery1.SQL.add(' insert into person (xm,mc,sex,lb,nl,byqk,zyqk,zylb,hszs,zcqk) values (:a,:b,:c,:d,:e,:f,:g,:h,:i,:j)');
adoquery1.parameters.ParamByName('a').value:=edxm.Text;
adoquery1.Parameters.ParamByName('b').Value:=edmc.text;
adoquery1.Parameters.ParamByName('c').value:=cmsex.text;
adoquery1.Parameters.ParamByName('d').value:=cmlb.text;
adoquery1.Parameters.parambyname('e').value:=strtoint(ednl.text);
adoquery1.Parameters.ParamByName('f').Value:=edbyqk.Text;
adoquery1.Parameters.ParamByName('g').value:=cmzyqk.text;
adoquery1.Parameters.parambyname('h').value:=cmzylb.text;
adoquery1.Parameters.ParamByName('i').Value:=cmhszs.Text;
adoquery1.Parameters.ParamByName('j').Value:=cmzcqk.Text;
adoquery1.ExecSQL ;
mainform.adoconnection1.committrans;
ccleardata(f_addperson);
if messagedlg('继续添加记录!',mtconfirmation,[mbyes,mbno],0)=mryes
then
edmc.SetFocus
else
close;
except
mainform.adoconnection1.rollbacktrans;
end;end;
procedure Tf_addperson.saveClick(Sender: TObject);
begin
mainform.adoconnection1.begintrans;
try
adoquery1.sql.clear;
adoquery1.SQL.add(' insert into person (xm,mc,sex,lb,nl,byqk,zyqk,zylb,hszs,zcqk) values (:a,:b,:c,:d,:e,:f,:g,:h,:i,:j)');
adoquery1.parameters.ParamByName('a').value:=edxm.Text;
adoquery1.Parameters.ParamByName('b').Value:=edmc.text;
adoquery1.Parameters.ParamByName('c').value:=cmsex.text;
adoquery1.Parameters.ParamByName('d').value:=cmlb.text;
adoquery1.Parameters.parambyname('e').value:=strtoint(ednl.text);
adoquery1.Parameters.ParamByName('f').Value:=edbyqk.Text;
adoquery1.Parameters.ParamByName('g').value:=cmzyqk.text;
adoquery1.Parameters.parambyname('h').value:=cmzylb.text;
adoquery1.Parameters.ParamByName('i').Value:=cmhszs.Text;
adoquery1.Parameters.ParamByName('j').Value:=cmzcqk.Text;
adoquery1.ExecSQL ;
mainform.adoconnection1.committrans;
ccleardata(f_addperson);
if messagedlg('继续添加记录!',mtconfirmation,[mbyes,mbno],0)=mryes
then
edmc.SetFocus
else
close;
except
mainform.adoconnection1.rollbacktrans;
end;end;
解决方案 »
- 请牛人帮忙翻译译一下C代码,这个定义 int32 PIPTR * pt 怎么转成delphi
- 為什麼高級搜索輸入 dll 查無資料呢?
- 扫描枪扫上的条形码变成另一个条形码的问题,怎样解决,有过这方面经验的朋友,请帮帮忙-100分在线!
- 去年做的一个药店管理系统,有意者请与我联系,QQ:372199229
- 请问哪里能找到一份完整的Indy控件组开发说明?最好是中文的!感谢!!!
- fastReport中打印結果邀替字符換該怎做啊!急急急急急!!!!!!!!
- 请问谁有installshield的东方语言包:IS622EastPack 的安装注册码?
- 如何解码web页面的数据?
- 继续VCL的问题:在Object Inspector中的下拉菜单是怎么做的?
- 太容易拿分了!
- 如何让没有装delphi的机器用我做的delphi程序阿?
- 喜欢昆工一MM,表白了但她没有说什么。。。散分一
insert into person (xm,mc,sex) values (:a,:b,:c)
adoquery1.appendrecord([nil,c1.Text,c2.Text,c3.Text,c4.Text,c5.text,c6.Text,c7.Text,c8.Text,c9.text]);
插入时,老是出错"键列信息不足或不正确.更新影响到过多的行"
可是最终又能把记录插入到表中这是为什么?
就是你的a,b,c....在没有输入时,该怎么处理。
你在前面加判断,去空是根本不用填,这样也许可以。
我已经查询出来了,关键在于库里面有些字段我是能过触发器,让它自动计算,'
可能追加时会出错,我用Update 就没事了