怎样在Server上查找相同的记录并删除(150分)

  • 主题发起人 主题发起人 AeroCheetah
  • 开始时间 开始时间
A

AeroCheetah

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大侠怎样通过Delphi来在Server上的表中检索出相同的记录并删除
 
我在用Delphi编写一个在SQL Server上查找相同记录并将其删除的程序.我对SQL不是很了
解.所以我试过用Select语句将整个表格从Server上拿过来放在
TQuery组件上来做,采用Cachedupdate,做完之后再来ApplyUpdate,但出现说多记录的异常,
说明在Server上无法标识所做过删除的记录对吗?是不是"查找相同记录并将其删除"只能让
Server来做,但我不知道怎样在Server上控制Server对每条记录的搜索,请问这个问题怎么
解决,能否帮个忙?谢谢


 
1. 你可以在录入的时候就判断是否有重复的记录存在....
2. 可以用TQuery的BathMove(参数1,参数2)方法进行更新数据,根据需要设置[参数2]的值,
具体使用方法可以看帮助的例子.
 
SQL Server? Try this:

DELETE FROM TableName WHERE ID IN
(SELECT TOP (SELECT COUNT(*) FROM TableName WHERE ... - 1) ID FROM TableName)
 
procedure TForm1.ComboBox1Click(Sender: TObject);
begin
str1:=combobox1.items.strings[combobox1.itemindex];
with listbox1 do
begin
items.clear;
session.Gettablenames(str1,'',true,true,listbox1.items);
end;

end;
搞定!
 
查找相同记录并将其删除?

删除后的记录还要标识吗?-------你是想一下删除几条记录吗?
如果是,可以用光标定位,然后集体删除光标定位的记录!
 
创建一个临时表(结构与原表一样)
将select distinct * from sourcetable的数据倒入临时表.
delete sourcetable
将临时表的数据导回
 
agree 郭玉梁,查找删除,不如更换数据表。
select distinct * into tmptable from sourcetable
delete * from sourcetable
insert into sourcetable select * from tmptable
 
多人接受答案了。
 
后退
顶部