问题描述:
我用delphi做了一个录入界面,容许用户每次录入任意多条记录后保存到
Access数据库表中, 该表有四个列,这4个列都是主键。
问题请教: 如何避免在用户输入中有重复记录的时候,能剔除重复的
记录并同时不影响速度?(如果有重复的话,数据库的刷新会出现
异常)。
我用delphi做了一个录入界面,容许用户每次录入任意多条记录后保存到
Access数据库表中, 该表有四个列,这4个列都是主键。
问题请教: 如何避免在用户输入中有重复记录的时候,能剔除重复的
记录并同时不影响速度?(如果有重复的话,数据库的刷新会出现
异常)。
如果用的是Table1,就再建一个和Table1设置一样的Table2,利用Table2来查找是否有重复数据,有则弹出SHOWMESSAGE,没有则提交,
procedure save_or_not(str1,str2,str3,str4:string); //代表四个字段的值
begin
with ADOQuery do
begin
close;
sql.clear;
sql.add('select * from table_na where field1='''str1+''' and field2='''+str2+
''' and field3='''str3+''' and field4=str4'''+'''');
prepared;
open;
end;
if ADOQuery.recordcount=0 then
begin
with ADOQuery do
begin
close;
sql.clear;
sql.add('insert into table_na '); //插入的具体写法忘了,你自己看吧
prepared;
execusql;
end;
end;
end;然后调用次过程,分别对每条记录进行判断
很抱歉,没能在线看到你的答复。 你提出的这个解决方法我觉得在效率上比较慢,
就我在测试中发现,平凡的打开和关闭数据库很毫时间。 还有比这个效率更好的方法吗?
我说的是输入有重复呀, 你在好好理解吧
说得好