csv檔插入資料庫比對 |
尚未結案
|
cd109
一般會員 發表:23 回覆:33 積分:11 註冊:2003-12-22 發送簡訊給我 |
|
Stallion
版主 發表:52 回覆:1600 積分:1995 註冊:2004-09-15 發送簡訊給我 |
|
yyu10
中階會員 發表:9 回覆:99 積分:96 註冊:2005-02-18 發送簡訊給我 |
与Access以及其它资料库不同, csv檔案本身并不存放Index, 所以对csv做查詢基本上是逐个比较. 如果进行大量查詢, 可以试试用Delphi的TStringList(Sorted)来提高效率.
var i, j: integer; new_keys: TStringList; old_keys: TStringList; ...... begin ...... old_keys := TStringList.Create; new_keys := TStringList.Create; ...... // 将csv中所有的key存入old_keys with query do begin SQL.Add('select key from ...'); Open; while not Eof do begin old_keys.Add(FieldByName('key').AsString); Next; end; Close; end; old_keys.Sort; new_keys.Sorted := True; // 对old_keys做查詢, insert新的資料 for i := 1 to ... do if (not old_keys.Find(待查的key, j)) and (not new_keys.Find(待查的key, j)) then begin //做insert的動作 ..... //将刚刚insert的key存入new_keys, 以防止重复insert相同的key new_keys.Add(待查的key); end; ...... new_keys.Free; old_keys.Free;_________________________ Programming is a passion |
cd109
一般會員 發表:23 回覆:33 積分:11 註冊:2003-12-22 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |