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

ADOTable的Locate

答題得分者是:bruce
JammyHsu
一般會員


發表:14
回覆:39
積分:10
註冊:2003-09-08

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-03-19 11:05:28 IP:140.128.xxx.xxx 訂閱
我有一個SQL資料庫中的table1, 假設如下
recno formno serialno company
1 096031901 02 C1
2 096031901 01 C2
3 096031901 03 C3
當我設索引後變成如下 indexfieldnames:='formno, serialno'
recno formno serialno company
2 096031901 01 C2
1 096031901 02 C1
3 096031901 03 C3
照道理說, adotable1.locate('formno', '096031901', [loCaseInsensitive])
找到應該是記錄2的(096031901 01 C2)才對
可是確不是, 而是找到記錄1的(096031901 02 C1)
現在我就必須加入下面程式碼
while (not bof) and (adotable1.fieldbyname('formno').asstring='096031901') do
prior;
if adotable1.fieldbyname('formno').asstring<>'096031901' then
next;
這樣才能確保找到第一筆
所以我的問題是
1.adotable.locate是不是無法依索引後的結果來找到第一筆?
2.sql server or table 有無方法讓它依欄位索引重排記錄順序?
3.除了我的方法外, 還有別的簡單函數或程序來搜尋嗎?
謝謝!!
bruce
中階會員


發表:19
回覆:121
積分:83
註冊:2002-04-16

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-03-20 13:23:54 IP:203.70.xxx.xxx 訂閱
1.adotable.locate是不是無法依索引後的結果來找到第一筆?
locate的搜尋方式是根據所給的欄位進行比對,實體的資料排序與locate無關,有無索引與locate也無關,複合欄位的使用方式如下:
with ADOTable1 do
Locate('Company;Contact;Phone', VarArrayOf(['Sight Diver', 'P', '408-431-1000']), [loPartialKey]);

2.sql server or table 有無方法讓它依欄位索引重排記錄順序?
請使用SQL指令 order by 欄位


3.除了我的方法外, 還有別的簡單函數或程序來搜尋嗎?
如題一之回覆



===================引 用 文 章===================
我有一個SQL資料庫中的table1, 假設如下
recno? formno???????? serialno company
1????????? 096031901 02??????????? C1
2????????? 096031901 01??????????? C2
3????????? 096031901 03??????????? C3
當我設索引後變成如下 indexfieldnames:='formno, serialno'
recno? formno???????? serialno company
2????????? 096031901 01??????????? C2
1????????? 096031901 02??????????? C1
3????????? 096031901 03??????????? C3
照道理說, adotable1.locate('formno', '096031901', [loCaseInsensitive])
找到應該是記錄2的(096031901 01??????????? C2)才對
可是確不是, 而是找到記錄1的(096031901 02??????????? C1)
現在我就必須加入下面程式碼
while (not bof) and (adotable1.fieldbyname('formno').asstring='096031901') do
? prior;
if? adotable1.fieldbyname('formno').asstring<>'096031901'? then
? next;
這樣才能確保找到第一筆
所以我的問題是
1.adotable.locate是不是無法依索引後的結果來找到第一筆?
2.sql server or table 有無方法讓它依欄位索引重排記錄順序?
3.除了我的方法外, 還有別的簡單函數或程序來搜尋嗎?
謝謝!!
系統時間:2024-05-19 20:35:06
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!