資料超過1000筆的查詢問題 |
尚未結案
|
breeze_1
一般會員 發表:33 回覆:72 積分:21 註冊:2003-05-26 發送簡訊給我 |
|
pedro
尊榮會員 發表:152 回覆:1187 積分:892 註冊:2002-06-12 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
|
breeze_1
一般會員 發表:33 回覆:72 積分:21 註冊:2003-05-26 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
|
breeze_1
一般會員 發表:33 回覆:72 積分:21 註冊:2003-05-26 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好! DBGrid元件似乎沒有這種暫存顯示結果的功能.
小弟的想法是, 您在Select前1000筆資料的時候, 可使用Select * Into NewTable From Table Where SN IN(...)的語法, 將查詢結果建立一個暫存表, 然后查后1000筆資料的時候, 就用Insert Into NewTable Select * From Table Where SN In (...)來追加進NewTable, 最后用Select * From NewTable的方法來顯示所以之前查詢過的資料. 參考看看! =====================
努力,相信會獲得美麗!
忻晟 發表人 - cashxin2002 於 2003/10/03 09:50:46
------
忻晟 |
breeze_1
一般會員 發表:33 回覆:72 積分:21 註冊:2003-05-26 發送簡訊給我 |
|
pedro
尊榮會員 發表:152 回覆:1187 積分:892 註冊:2002-06-12 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好! 舉個例子來講, 現在訂單資料表中共有2000筆記錄, 鍵值欄位是編號(字串形態欄位), 其值為'RD0001'到'ORD2000': 第一步的工作是先查詢編號欄位值小于'ORD1001'的所有資料:
Select * Into 訂單備份 From 訂單 Where 編號<'ORD1001'
//這樣, 就已經查詢出前1000筆資料了, 并存進一個新資料表
//名為訂單備份 第二步工作是要查詢出后1000筆資料:
Insert Into 訂單備份 Select * From 訂單 Where 編號>'ORD1000'
//這里的Insert Into語法就是將Select查詢結果追加到第一步
//已經建立的訂單備份資料表中, 如果要單獨看到這后1000筆的資料內容
//在完成追加工作后, 用Select語法就可以了, 如下:
Select * From 訂單 Where 編號>'ORD1000' 第三步工作是查過剛才所有查詢過的資料:
Select * From 訂單備份 附: 訂單備份是一個新增的資料表, 可以用如下的方式進行刪除:
Drop Table 訂單備份 參考看看! =====================
努力,相信會獲得美麗!
忻晟
------
忻晟 |
breeze_1
一般會員 發表:33 回覆:72 積分:21 註冊:2003-05-26 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
|
breeze_1
一般會員 發表:33 回覆:72 積分:21 註冊:2003-05-26 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
|
breeze_1
一般會員 發表:33 回覆:72 積分:21 註冊:2003-05-26 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
|
breeze_1
一般會員 發表:33 回覆:72 積分:21 註冊:2003-05-26 發送簡訊給我 |
|
breeze_1
一般會員 發表:33 回覆:72 積分:21 註冊:2003-05-26 發送簡訊給我 |
|
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
您好! 我想應該不需要設定形態吧, 因為Select Into的語法是直接依据來源資料表的欄位形態來建立新的資料表. 不然, 您就先試一下直接指定條件值的方法看一看是否是語法的問題, 如下:
begin with radio1_q do begin close; sql.Clear; sql.add('select * into BBB from AAA where serial_number in ('1','2','3','4')'); sql.Add(sqlstr); execsql; end; end;如果以上執行沒有問題的話, 那語法就沒有問題, 從memo1_str這個變數的寫法 上去修正. 參考看看! ===================== 努力,相信會獲得美麗! 忻晟
------
忻晟 |
breeze_1
一般會員 發表:33 回覆:72 積分:21 註冊:2003-05-26 發送簡訊給我 |
with radio1_q do begin close; sql.Clear; sqlstr:=' select * from aaa where serial_number in (''1'',''2'',''3'')'; sql.Add(sqlstr); open; end;沒有問題 with radio1_q do begin close; sql.Clear; sqlstr:=' select * into bbb from aaa where serial_number in (''1'',''2'',''3'')'; sql.Add(sqlstr); execsql; end;[/code] 就有問題 |
cashxin2002
版主 發表:231 回覆:2555 積分:1937 註冊:2003-03-28 發送簡訊給我 |
|
timhuang
尊榮會員 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
引言: SELECT * FROM TABEL WHERE SN IN ('1','2','3',.....'1001') 這樣就會提示超過1000筆,有什麽辦法能讓這1000多筆資料查詢后顯示在同一個dbgridhi, 多於 1000 筆時, 又沒有規律的話, 可以採用 union 的方式, 如: select * from tael where sn in ('1','2',...'1000') union select * from tael where sn in ('1001','1002',....) 試試看! |
breeze_1
一般會員 發表:33 回覆:72 積分:21 註冊:2003-05-26 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |