當SQL 是 eof 游標指向top |
尚未結案
|
nick167
中階會員 發表:86 回覆:133 積分:53 註冊:2003-02-12 發送簡訊給我 |
sx:='20040501';
sy:='S';
ADOQuery1.SQL.Add('select zadate,zaseq,zahead from test ');
ADOQuery1.SQL.Add('where zahead=''' Sy ''' and zadate = (select top 1 ');
ADOQuery1.SQL.Add(' zaDate from test where zaDate <= ''' Sx ''' ) ');
例:
20030101 001
20030102 001
...
20031229 014
20031229 015
20041231 001
當delete 後指標該到 20031229 015 record 可是會跑到 20030101 01 首筆
是否sql語法有誤? 或者在查詢record時可用locate或lookup找到就近一筆紀錄嗎? 謝謝 發表人 - nick167 於 2004/10/18 10:57:03
|
Chance36
版主 發表:31 回覆:1033 積分:792 註冊:2002-12-31 發送簡訊給我 |
引言: sx:='20040501'; sy:='S'; ADOQuery1.SQL.Add('select zadate,zaseq,zahead from test '); ADOQuery1.SQL.Add('where zahead=''' Sy ''' and zadate = (select top 1 '); ADOQuery1.SQL.Add(' zaDate from test where zaDate <= ''' Sx ''' ) '); 例: 20030101 001 20030102 001 ... 20031229 014 20031229 015 20041231 001 當delete 後指標該到 20031229 015 record 可是會跑到 20030101 01 首筆 是否sql語法有誤? 或者在查詢record時可用locate或lookup找到就近一筆紀錄嗎?nick167 你好 只有一點疑問,討論一下:依上述的SQL指令怎麼可能查詢出這麼多筆資料錄呢? 唯一想到可能狀況是: 1.AdoQuery的SQL指令原來是可以取得多筆資料錄的,如: =>AdoQuery.SQL.Clear; =>ADOQuery1.SQL.Add('select zadate,zaseq,zahead from test '); =>ADOQuery1.SQL.Add('where zahead=''' Sy ''' and zadate <= ''' Sx ''' ) '); =>ADOQuery1.Open; 2.開啟之後先行更改SQL指令,(沒有Close也沒有再次的Open) =>ADOQuery1.SQL.Add('select zadate,zaseq,zahead from test '); =>ADOQuery1.SQL.Add('where zahead=''' Sy ''' and zadate = (select top 1 '); =>ADOQuery1.SQL.Add(' zaDate from test where zaDate <= ''' Sx ''' ) '); 3.然後,移到最後一筆,接著刪除該筆資料錄 AdoQuery1.Last; AdoQuery1.Delete; ok!問題就在這裏,當最後一筆資料刪除之後,Adoquery1會自動ReQuery(或ReFresh),但此時SQL條件已變更,ReQuery(或ReFresh)只能查詢到一筆資料(即第一筆資料),所以指標才會指到第一筆(應該是只有一筆吧)。如果不是第二步的動作改變了SQL指令的內容的話,應該不會有你所說的狀況才對。 ps:以上純屬假設,若有謬誤請勿見怪! _______________________________________ 深藍的魚,祝您好運..........連連 |
sl@cableplus.com.cn
高階會員 發表:168 回覆:359 積分:130 註冊:2004-03-26 發送簡訊給我 |
|
nick167
中階會員 發表:86 回覆:133 積分:53 註冊:2003-02-12 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |