想請教資料是否重複最有效率的方法.. |
缺席
|
iann
一般會員 發表:17 回覆:31 積分:14 註冊:2003-08-30 發送簡訊給我 |
各位先進
小弟手邊有一個序號檔案(TXT),想查證裡頭是否有重複的序號。目前有成功做出來的方法,是先將DATA 寫入到 ADOTabel(MDB),然後將資料設定為索引,經索引排序後,利用迴圈查資料是否有重複的。
但是,那麼做,很慢.......。所以又另外查資料得知,可以利用SQL 指令
ADOQuery1.SQL.Add('Select * from data as T1'); ADOQuery1.SQL.Add('where (select count(*) from data as T2 where T1.data = T2.data) > 1'); ADOQuery1.SQL.Add('order by data');這個指令是可以讓我快速找到重複的資料,但是好像只能資料寫入資料庫中,才可以用這方法查詢資料,但是寫入到資料庫中的時間實在太久了...。 我又另外去查文章,得知可以用下列的SQL 指令,來連結文字檔.... select * from OpenRowset('MSDASQL', 'Driver={Microsoft Text Driver (*.txt; *.csv)};DefaultDir=D:\;','select * from TEST.txt')但是,我想不到有啥方法可以將這串指令放到 ADOQuery.SQL 中... (因為我的文字檔案會變動,所以不能直接設定在 ADOQuery.SQL 中..) 請問各位先進,有啥更好的想法嗎?感恩!! 努力學習中....
------
努力學習中.... |
iann
一般會員 發表:17 回覆:31 積分:14 註冊:2003-08-30 發送簡訊給我 |
經過高人指點,小弟完成了這個程式,把程式碼放上來,讓各位有需要可以參考看看 @@a
//設定資料連結 ADODataSet1.Close; ADODataSet1.ConnectionString:='Provider=MSDASQL.1;Persist Security Info=False;Extended Properties="DBQ=' FilePath ';DefaultDir=' FilePath ';Driver={Microsoft Text-Treiber (*.txt; *.csv)};DriverId=27;Extensions=*;FIL=text;FILEDSN=' FilePath 'data.dsn;MaxBufferSize=2048;MaxScanRows=8;PageTimeout=5;SafeTransactions=0;Threads=3;UID=admin;UserCommitSync=Yes;"'; //設定比對資料指令 ADODataSet1.CommandText:='select F1 ,Count(F1) AS 筆數 from [' FileName '] Group by F1 HAVING Count(F1) >1'; //執行 ADODataSet1.Open;努力學習中....
------
努力學習中.... |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |