如何快速刪除access指定欄位的重覆記錄 delphi / windows sdk/api
我有乙個access資料表如下
id name score
1 老張 80
2 王二小 70
3 老張 80
4 李小黑 90
********************
現在我想刪除 字段 name 重複的紀錄,達如下效果:
id name score
1 老張 80
2 王二小 70
4 李小黑 90
請問,在delphi裡面操作access怎麼做最快?
我查詢了csdn見到乙個人操作access用了這樣的表示式:「
這個是公認的最快的刪除重覆記錄的sql:
delete from emp e where e.rowid > (select min(x.rowid) from emp x where x.emp_no = e.emp_no); 」
我自己如果要做,應該怎麼做速度最快呢?
請給出思路
你這個問題好像沒什麼好辦法,
這樣做吧,
function getdelreocrdsid: string;
var
midstr,resultstr:string;
begin
with adodataset do
begin
if active then active:=false;
commandtext:='select * from emp order by [name] asc' ; // 一定要排序
open; midstr:=''; resultstr:='';
while (not eof) do
begin
if trim(midstr)=trim(fieldbyname('name').asstring) then
resultstr:=resultstr+fieldbyname('id').asstring+',';
else midstr:=fieldbyname('name').asstring;
next;
end;
if result<>'' then
result:=copy(resultstr1,length(resultstr)-1)
else result:='-1'
close;
end;
end;
procedure deleteselectrecord;
begin
with adocommand do
begin
commandtext:='delete from emp where id in ('+getdelreocrdsid+')';
execute;
end;
end;
如何快速刪除Access指定欄位的重覆記錄
如何快速刪除access指定欄位的重覆記錄 delphi windows sdk api 我有乙個access資料表如下 id name score 1 老張 80 2 王二小 70 3 老張 80 4 李小黑 90 現在我想刪除 字段 name 重複的紀錄,達如下效果 id name score ...
access中,如何刪除不可見空格
1 可以使用 trim 函式,刪除字串 首 尾 的正常空格 update 表名 set 欄位1 trim 欄位1 欄位2 trim 欄位2 欄位3 trim 欄位3 案例 update 表1 set trim後 trim 欄位1 2 如果trim 達不到想要的效果,可以使用 replace 欄位名,...
在Access中建立表及如何指定字段型別
在access中建立表一般是用ado來執行sql語句來建立表。access中的字段型別在sql語句中是什麼呢?在msdn中有篇文章介紹得很詳細 下面是我寫的乙個sql語句,在delphi中用adoconnection物件執行成功 create table 測試表 文字255 varchar not ...