问一个关于数据库的小问题(30分)

  • 主题发起人 主题发起人 elfgirl
  • 开始时间 开始时间
请问谁能够告诉我,为什么我的数据库里的记录已经修改了,
但是显示出来的结果总是晚了一步。我是建立了2个窗体,单击第一个窗体显示第二个窗体。
在第二个窗体中修改了数据库的内容,修改后在第一个窗体中显示改过的数据库。但是每次第一个窗体中的
内容还是原来数据库的,需要重新运行后才会显示改过的内容。我用myQuery->Refresh();也不行
在命令里重新打开一遍窗体也不行,紧急求救
 
最后一个问题,前面的问题可以不答了。我从一个数据库中读出记录来放入另一个数据库中,
一遍遍的读,怎么样才能不重复读出。比如说数据库A有{1,2,3},我第一次已经读出{1,2,3}到B了。
然后后来我的A修改过了,变成{1,2,4}了。而B重新从头到尾的读A一遍,这时候我只想B中的内容变为
{1,2,4},而不是{1,2,3,1,2,4}.我就是不想要重复的记录,不知我说明白没有。
 
试试看,用两个分别指向A,B的query实现
方法一:
删除B内容--->取A数据--->用个循环逐条把数据写入B
方法二:
遍历A,判断数据是否在B存在,否则加入新数据,是则修改
 
我读取数据用方法一做的,但是应该怎样一次性清空删除b,
而且麻烦的是不能删除记录的所有字段,还要保留一个字段,因为这个字段不是在A中读的
 
那只能用方法二,判断
if not exist in B then
insert
else
if qryA.fields[x].value<>qryB.fields[x].value then
update B
 
答elfgirl:
一个嵌查询就可解决:
insert into B select * from A where [red]是B表中没有的记录[/red](这个可用一个select 查询子句来代替)
作用:添加记录4到B表
delete from B where 是A表中没有的记录
作用:删除记录3
 
u98huoi[red]okkpko[/red]
 
建议用ACCESS最好不要用ADO,用KADAO最好(免费的)
REFLASH不行,要Requery,或者关闭再打开数据集才行
 
后退
顶部