我用Delphi 7做了个程序,数据库为Access2003 ,现象如下:显示“修改成功”但实际未必能成功修改;修改成功后有时“修改成功”提示框不弹出;修改时需要等待30秒以上才能看出是否修改成功。代码如下:
try
with adoquery do
begin
close;
sql.Clear;
sql.Add('update zccsedit1 set 修程=:xc,轴承型号=:zcxh,制造厂=:zzc,制造日期=:zzrq,年号=:nh');
sql.Add('Where 轴承编号=:zcbh');
Parameters.ParamByName('xc').Value:=trim(ComboBox4.Text);
Parameters.ParamByName('zcxh').Value:=trim(ComboBox1.Text);
if(ComboBox4.Text='新造')then
begin
Parameters.ParamByName('zzc').Value:=trim(ComboBox5.Text);
Parameters.ParamByName('zzrq').Value:=trim(Edit9.Text);
end;
if(ComboBox4.Text='大修')then
begin
Parameters.ParamByName('zzc').Value:=trim(ComboBox6.Text);
Parameters.ParamByName('zzrq').Value:=trim(Edit10.Text);
end;
Parameters.ParamByName('nh').Value:=trim(Edit8.Text);
Parameters.ParamByName('zcbh').Value:=trim(Edit1.Text); execsql;
zccpbj.Statusbar1.Panels[2].Text:='基本信息修改成功';
end;
except
zccpbj.Statusbar1.Panels[2].Text:='基本信息修改失败';
end;
with adoquery do
begin
close;
sql.Clear;
sql.Add('select * from zccsedit1');
open;
end;
try
with adoquery do
begin
close;
sql.Clear;
sql.Add('update zccsedit1 set 修程=:xc,轴承型号=:zcxh,制造厂=:zzc,制造日期=:zzrq,年号=:nh');
sql.Add('Where 轴承编号=:zcbh');
Parameters.ParamByName('xc').Value:=trim(ComboBox4.Text);
Parameters.ParamByName('zcxh').Value:=trim(ComboBox1.Text);
if(ComboBox4.Text='新造')then
begin
Parameters.ParamByName('zzc').Value:=trim(ComboBox5.Text);
Parameters.ParamByName('zzrq').Value:=trim(Edit9.Text);
end;
if(ComboBox4.Text='大修')then
begin
Parameters.ParamByName('zzc').Value:=trim(ComboBox6.Text);
Parameters.ParamByName('zzrq').Value:=trim(Edit10.Text);
end;
Parameters.ParamByName('nh').Value:=trim(Edit8.Text);
Parameters.ParamByName('zcbh').Value:=trim(Edit1.Text); execsql;
zccpbj.Statusbar1.Panels[2].Text:='基本信息修改成功';
end;
except
zccpbj.Statusbar1.Panels[2].Text:='基本信息修改失败';
end;
with adoquery do
begin
close;
sql.Clear;
sql.Add('select * from zccsedit1');
open;
end;
解决方案 »
- 动态生成MainMenu1的部分item,以及怎么触发这些item的事件?
- delphi最大的优势还是在系统方面! 如何发挥这个优势为我所用,我要创业
- 请问 DELPHI 2007 用来开发 BS 结构的程序好吗,能开发APSX 的程序吗?
- 在windows2003下打开项目运行时,出现错误,与sqloledb.dll有关?
- midas高手请进
- 如何把一个dbGrid选中的行中的数据双击放入到另一个dbgrid中
- 关于捕捉消息的问题
- 高分求源代码!又谁做过票据打印的软件!帮忙给点源代码!
- 各位高手请帮我看看这样为什么会出错!
- 动态下拉菜单如何激发事件???
- 如果把Delphi的Begin 和 End 改为{ }就象C++一样,代码会简洁许多,大家怎么看呀
- 刚学Delphi 请问怎么在Delphi中添加一Image控件?
with adoquery do
begin
close;
sql.Clear;
sql.Add('update zccsedit1 set 修程=:xc,轴承型号=:zcxh,制造厂=:zzc,制造日期=:zzrq,年号=:nh');
sql.Add(' Where 轴承编号=:zcbh'); //注意where前应该有一个空格
Parameters.ParamByName('xc').Value:=trim(ComboBox4.Text);
Parameters.ParamByName('zcxh').Value:=trim(ComboBox1.Text);
if(ComboBox4.Text='新造')then
begin
Parameters.ParamByName('zzc').Value:=trim(ComboBox5.Text);
Parameters.ParamByName('zzrq').Value:=trim(Edit9.Text);
end else //这里加入else,否则有可能xc参数没有赋值的问题产生
if(ComboBox4.Text='大修')then
begin
Parameters.ParamByName('zzc').Value:=trim(ComboBox6.Text);
Parameters.ParamByName('zzrq').Value:=trim(Edit10.Text);
end;
Parameters.ParamByName('nh').Value:=trim(Edit8.Text);
Parameters.ParamByName('zcbh').Value:=trim(Edit1.Text); execsql;
zccpbj.Statusbar1.Panels[2].Text:='基本信息修改成功';
end;
except
zccpbj.Statusbar1.Panels[2].Text:='基本信息修改失败';
end;
with adoquery do
begin
close;
sql.Clear;
sql.Add('select * from zccsedit1');
open;
end;
with adoquery do
begin
close;
sql.Clear;
sql.Add('update zccsedit1 set 修程=:xc,轴承型号=:zcxh,制造厂=:zzc,制造日期=:zzrq,年号=:nh');
sql.Add(' Where 轴承编号=:zcbh'); //注意where前应该有一个空格
Parameters.ParamByName('xc').Value:=trim(ComboBox4.Text);
Parameters.ParamByName('zcxh').Value:=trim(ComboBox1.Text);
if(ComboBox4.Text='新造')then
begin
Parameters.ParamByName('zzc').Value:=trim(ComboBox5.Text);
Parameters.ParamByName('zzrq').Value:=trim(Edit9.Text);
end else //这里加入else,否则有可能xc参数没有赋值的问题产生
if(ComboBox4.Text='大修')then
begin
Parameters.ParamByName('zzc').Value:=trim(ComboBox6.Text);
Parameters.ParamByName('zzrq').Value:=trim(Edit10.Text);
end;
Parameters.ParamByName('nh').Value:=trim(Edit8.Text);
Parameters.ParamByName('zcbh').Value:=trim(Edit1.Text); execsql;
zccpbj.Statusbar1.Panels[2].Text:='基本信息修改成功';
end;
except
zccpbj.Statusbar1.Panels[2].Text:='基本信息修改失败';
end;
with adoquery do
begin
close;
sql.Clear;
sql.Add('select * from zccsedit1');
open;
end;
with adoquery do
begin
close;
sql.Clear;
sql.Add('update zccsedit1 set 修程=:xc,轴承型号=:zcxh,制造厂=:zzc,制造日期=:zzrq,年号=:nh');
sql.Add(' Where 轴承编号=:zcbh'); //注意where前应该有一个空格
Parameters.ParamByName('xc').Value:=trim(ComboBox4.Text);
Parameters.ParamByName('zcxh').Value:=trim(ComboBox1.Text);
if(ComboBox4.Text='新造')then
begin
Parameters.ParamByName('zzc').Value:=trim(ComboBox5.Text);
Parameters.ParamByName('zzrq').Value:=trim(Edit9.Text);
end else //这里加入else,否则有可能xc参数没有赋值的问题产生
if(ComboBox4.Text='大修')then
begin
Parameters.ParamByName('zzc').Value:=trim(ComboBox6.Text);
Parameters.ParamByName('zzrq').Value:=trim(Edit10.Text);
end;
Parameters.ParamByName('nh').Value:=trim(Edit8.Text);
Parameters.ParamByName('zcbh').Value:=trim(Edit1.Text); execsql;
zccpbj.Statusbar1.Panels[2].Text:='基本信息修改成功';
end;
except
zccpbj.Statusbar1.Panels[2].Text:='基本信息修改失败';
end;
with adoquery do
begin
close;
sql.Clear;
sql.Add('select * from zccsedit1');
open;
end;
2、楼上这位高人修改的这两个地方比较好。
2、Access的数据更新结果是可能会有延迟,但不可能达到30秒