菜鸟求助:如何实现数据的同步?

li610997 2006-09-14 09:52:00
现欲实现,1、数据在完成添加并提交后,利用查询完成新添加的数据立即在一个DBGrid中显示出来。2、数据在完成修改并提交到数据库后,同样利用查询将已经修改的记录在一个DBGrid中显示。
出现的问题:1、添加并提交后的数据,不能在查询中正常显示,即第一条不能查询出来,添加的第二条与第一条一同显示,添加的第三条能正常显示。
2、在修改数据时,第一条要在第二条记录修改并提交后,显示第一条记录,而第二条不显示,此时添加记录,则修改后的记录与添加的一同显示出来。
procedure TForm1.Button1Click(Sender: TObject);
begin
if radiobutton1.Checked then
begin
adotable1.Close;
adotable1.Open;
adotable1.Append;//添加记录
adotable1.FieldValues['sjdaihao']:=trim(edit1.Text);
adotable1.FieldValues['jiche']:=trim(edit3.Text);
adotable1.FieldValues['gudao']:=trim(edit4.Text);
adotable1.FieldValues['dkshijian']:=trim(edit5.Text);
adotable1.FieldValues['kgzhuangtai']:='打开';
adotable1.FieldValues['jhdaihao']:=trim(edit6.Text);
edit1.Text:='';
edit2.Text:='';
edit3.Text:='';
edit4.Text:='';
edit5.Text:='';
edit6.Text:='';
edit7.Text:='';
button1.Enabled:=false;
button2.Enabled:=false;
radiobutton1.Checked:=false;
radiobutton2.Checked:=false;
radiobutton3.Checked:=false;
radiobutton3.Enabled:=false;
radiobutton4.Checked:=false;
radiobutton4.Enabled:=false;
adotable1.Post;
adotable1.Close;
adotable1.open;
adoquery1.Close;//查询添加的记录
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select siji.sjdaihao as 代号,siji.sjxingming as 申请人,kaiguan.jiche as 机车,kaiguan.gudao as 股道,dkshijian as 打开时间,kgzhuangtai as 开关状态,jiedixian as 接地线,bhshijian as 闭合时间,jianhu.jhxingming as 监护人');
adoquery1.SQL.Add('from siji,jianhu,kaiguan');
adoquery1.SQL.Add('where (kaiguan.sjdaihao=siji.sjdaihao)and(kaiguan.jhdaihao=jianhu.jhdaihao)order by kaiguan.dkshijian asc');
adoquery1.open;
adoquery1.Last;
adoquery2.Close;
adoquery1.SQL.Clear;
adoquery2.SQL.Add('select siji.sjxingming as 申请人,jiche as 机车,gudao as 股道,dkshijian as 打开时间,kgzhuangtai as 开关状态');
adoquery2.SQL.Add('from siji,kaiguan');
adoquery2.SQL.Add('where (kaiguan.kgzhuangtai="打开")and(siji.sjdaihao=kaiguan.sjdaihao)order by kaiguan.dkshijian asc');
adoquery2.Open;
adoquery2.Last;
end;
if radiobutton2.Checked then
begin
adoquery6.Close;//修改记录
adoquery6.SQL.Clear;
adoquery6.SQL.Add('update kaiguan set kgzhuangtai="闭合",jiedixian=:jiedixian,bhshijian=:bhshijian where sjdaihao=:sjdaihao and kgzhuangtai="打开"');
if radiobutton3.Checked then
adoquery6.Parameters.ParamValues['jiedixian']:=radiobutton3.Caption;
if radiobutton4.Checked then
adoquery6.Parameters.ParamValues['jiedixian']:=radiobutton4.Caption;
adoquery6.Parameters.ParamValues['bhshijian']:=edit5.Text;
adoquery6.Parameters.ParamValues['sjdaihao']:=edit1.Text;
adoquery6.ExecSQL;
edit1.Text:='';
edit2.Text:='';
edit3.Text:='';
edit4.Text:='';
edit5.Text:='';
edit6.Text:='';
edit7.Text:='';
button1.Enabled:=false;
button2.Enabled:=false;
radiobutton1.Checked:=false;
radiobutton2.Checked:=false;
radiobutton3.Checked:=false;
radiobutton3.Enabled:=false;
radiobutton4.Checked:=false;
radiobutton4.Enabled:=false;
datasource1.DataSet.Active:=false;
datasource1.DataSet.Active:=true;
adoquery1.Close;//查询修改的记录
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select siji.sjdaihao as 代号,siji.sjxingming as 申请人,kaiguan.jiche as 机车,kaiguan.gudao as 股道,dkshijian as 打开时间,kgzhuangtai as 开关状态,jiedixian as 接地线,bhshijian as 闭合时间,jianhu.jhxingming as 监护人');
adoquery1.SQL.Add('from siji,jianhu,kaiguan');
adoquery1.SQL.Add('where (kaiguan.sjdaihao=siji.sjdaihao)and(kaiguan.jhdaihao=jianhu.jhdaihao) order by kaiguan.dkshijian asc');
adoquery1.open;
adoquery1.Last;
adoquery2.Close;
adoquery1.SQL.Clear;
adoquery2.SQL.Add('select siji.sjxingming as 申请人,jiche as 机车,gudao as 股道,dkshijian as 打开时间,kgzhuangtai as 开关状态');
adoquery2.SQL.Add('from siji,kaiguan');
adoquery2.SQL.Add('where (kaiguan.kgzhuangtai="打开")and(siji.sjdaihao=kaiguan.sjdaihao) order by kaiguan.dkshijian asc');
adoquery2.Open;
adoquery2.Last;
end;
end;
...全文
168 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
ron_xin 2006-09-14
  • 打赏
  • 举报
回复
有点晕`~~
wudi_1982 2006-09-14
  • 打赏
  • 举报
回复
好多东西啊。

2,497

社区成员

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

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