全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2825
推到 Plurk!
推到 Facebook!

ADO連接Excel之sql select 時間?

答題得分者是:sryang
book23
一般會員


發表:7
回覆:8
積分:3
註冊:2004-07-23

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-02-18 17:47:34 IP:210.243.xxx.xxx 訂閱
各位前輩們  小弟現在是用ADO元件連接Excel資料  把Excel當做是資料庫的感覺!

現在小弟我想要比較Excel裡的二個Sheet的資料
假設這二個Sheet一個叫Table1另一個叫Table2
我要先從Table2裡找出一段時間 "(例如 1994/1/1~1994/3/30)" 且 "關係(k.rel = t.rel)只要是一樣的資料只求出一筆即可" 裡所有的資料內容
再去跟Table1裡的資料做比對 找出Table1裡沒有出現在Table2 select出來的資料集裡的資料
下面是我所寫的sql語法 但是因為它搜尋的時間大概3~4分鐘吧!!
我覺得花費的時間太久 所以想請問前輩們有沒有更好的方法可以縮短時間呢??
Table1裡的資料大概三千多筆
Table2裡的資料大概二萬多筆(也有一萬多筆的)
[code cpp]

String Month_First = InputBox("排序輸入盒", " ", "Default string");
String Month_End = InputBox("排序輸入盒", " ", "Default string");
ADOQuery2->Close();
ADOQuery2->SQL->Clear();
ADOQuery2->SQL->Text = "select CusName from Table1 as k where not exists (select * from Table2 as t where (t.Date between :fMonth and :eMonth) and (k.rel = t.rel))";
ADOQuery2->Parameters->ParamByName("fMonth")->Value = Month_First;
ADOQuery2->Parameters->ParamByName("eMonth")->Value = Month_End;
ADOQuery2->Open();
[/code]
sryang
尊榮會員


發表:39
回覆:762
積分:920
註冊:2002-06-27

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-02-19 22:39:11 IP:124.10.xxx.xxx 訂閱
把資料倒進 MDB 檔,建立索引,這樣才會快
把 Excel 當成資料庫來用,沒有索引,得一筆一筆去比對,快不起來的
------
歡迎參訪 "腦殘賤貓的備忘錄" http://maolaoda.blogspot.com/
book23
一般會員


發表:7
回覆:8
積分:3
註冊:2004-07-23

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-02-21 09:08:05 IP:210.243.xxx.xxx 訂閱
sryang 大大您好 

感謝您的回應 !
會用excel當作資料庫來使用 也是因為公司的要求!

所以沒辦法去避免它 而且用excel當資料庫 在下sql指令時 有些時後會遇到一些很怪的問題!!

所以如果有人也想像小弟一樣 用excel當資料庫的話 可是要好好三思啊~~~~~~~~~~~~~>"<

再一次感謝sryang大大的回應!!
系統時間:2024-04-21 0:21:52
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!