这是我写的一个数据录入的程序的一段总觉的不好,请各位大侠指点一下

dingsg111 2002-12-06 09:48:59
begin
s_id:=AdoQuery1.FieldByName('s_id').value;
AdoQuery1.Close;
AdoQuery1.SQL.Clear;
AdoQuery1.SQL.Add('select * from s_sharp where s_id="'+s_id+'"');
AdoQuery1.Open;
{
*判断在形态信息表中是否已经存在相同信息。
}
if not AdoQuery1.Eof then
begin
ShowMessage('此人信息已经存在,请重新输入!');
AdoQuery1.Close;
end
else
begin
AdoQuery1.Close;
AdoQuery1.SQL.Clear;
AdoQuery1.SQL.add('insert into s_sharp(s_id,s_height,s_weight,s_upper_arm,s_lower_limbs,s_second_height,s_xingong,s_vital_capacity)');
AdoQuery1.SQL.add(' values(s_id,s_height,s_weight,s_upper_arm,s_lower_limbs,s_second_height,s_xingong,s_vital_capacity)');
AdoQuery1.Parameters.ParamByName('s_id').Value:=s_id;
AdoQuery1.Parameters.ParamByName('s_height').Value:=s_height.Text;
AdoQuery1.Parameters.ParamByName('s_weight').Value:=s_weight.Text;
AdoQuery1.Parameters.ParamByName('s_upper_arm').Value:=s_upper_arm.Text;
AdoQuery1.Parameters.ParamByName('s_lower_limbs').Value:=s_lower_limbs.Text;
AdoQuery1.Parameters.ParamByName('s_second_height').Value:=s_second_height.Text;
AdoQuery1.Parameters.ParamByName('s_xingong').Value:=s_xingong.Text;
AdoQuery1.Parameters.ParamByName('s_vital_capacity').Value:=s_vital_capacity.Text;

AdoQuery1.ExecSQL;
end;
end;

...全文
44 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
54efei 2002-12-06
  • 打赏
  • 举报
回复
定义过程EditClear;
for i:=0 to self.ComponentCount-1 do
begin
if self.Components[i] is tedit then
begin
((self.Components[i]) as tedit).text:='';
end;
end;
Billy_Chen28 2002-12-06
  • 打赏
  • 举报
回复
to mengxianbao1521(简单就是美丽-代码优化)
我这个名字已经在CSDN用了几年了哈:)
(大家都是朋友嘛)
dingsg111 2002-12-06
  • 打赏
  • 举报
回复
再请问各位大侠一个问题,怎么样在一条记录输入完毕的时候,自动让输入框变为空
mengxianbao1521 2002-12-06
  • 打赏
  • 举报
回复
to: cg1120(代码最优化-§为这世界,添些美丽色彩§)
名字很象 能否认识一下。
..._/...._/.MXN:mengxianbao1521@sina.com._/...._/...
..._/...._/.........QQ:10094115..........._/...._/...
..._/_/_/_/............孟宪宝............._/_/_/_/...
..._/...._/............我爱编程..........._/...._/...
..._/...._/.............灌水专用.........._/...._/...
mengxianbao1521 2002-12-06
  • 打赏
  • 举报
回复
的要看一个软件的整体框架
应分三层,数据层,逻辑层,表示层

begin
s_id:=AdoQuery1.FieldByName('s_id').value;
AdoQuery1.Close;
AdoQuery1.SQL.Clear;
AdoQuery1.SQL.Add('select * from s_sharp where s_id="'+s_id+'"');
try
AdoQuery1.Open;
except
ShoeMessage(' connection error !');
exit;
end;
{
*判断在形态信息表中是否已经存在相同信息。
}
if not AdoQuery1.Eof then
begin
ShowMessage('此人信息已经存在,请重新输入!');
AdoQuery1.Close;
end
else
begin
with ADOQuer1 do
begin
Close;
SQL.Clear;
SQL.add('insert into s_sharp(s_id,s_height,s_weight,s_upper_arm,s_lower_limbs,s_second_height,s_xingong,s_vital_capacity)');
SQL.add(' values(s_id,s_height,s_weight,s_upper_arm,s_lower_limbs,s_second_height,s_xingong,s_vital_capacity)');
Parameters.ParamByName('s_id').Value:=s_id;
Parameters.ParamByName('s_height').Value:=s_height.Text;
Parameters.ParamByName('s_weight').Value:=s_weight.Text;
Parameters.ParamByName('s_upper_arm').Value:=s_upper_arm.Text;
Parameters.ParamByName('s_lower_limbs').Value:=s_lower_limbs.Text;
Parameters.ParamByName('s_second_height').Value:=s_second_height.Text;
Parameters.ParamByName('s_xingong').Value:=s_xingong.Text;
Parameters.ParamByName('s_vital_capacity').Value:=s_vital_capacity.Text;

ExecSQL;
end;
end;
end;
Billy_Chen28 2002-12-06
  • 打赏
  • 举报
回复
adoquery1.IsEmpty是判断查询结果是否为空
flyingkiller 2002-12-06
  • 打赏
  • 举报
回复
AdoQuery1.SQL.add(' values(:s_id,:s_height,:s_weight,:s_upper_arm,:s_lower_limbs,:s_second_height,:s_xingong,:s_vital_capacity)');
Billy_Chen28 2002-12-06
  • 打赏
  • 举报
回复
这里可以改一下:
if not AdoQuery1.Eof then//改为:if not adoquery1.IsEmpty then
begin
ShowMessage('此人信息已经存在,请重新输入!');
AdoQuery1.Close;
end
else

2,507

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧