線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:929
推到 Plurk!
推到 Facebook!

如何抓取某筆資料的前後50筆

尚未結案
ivankuo
中階會員


發表:132
回覆:272
積分:95
註冊:2002-11-21

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-06-06 11:59:18 IP:61.221.xxx.xxx 未訂閱
小弟使用的是ADOQuery 若想要抓取第100資料的前後各20筆資料,請問有方法做到ㄇ?? 感謝感謝
------
ivankuo
pedro
尊榮會員


發表:152
回覆:1187
積分:892
註冊:2002-06-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-06-06 13:48:02 IP:210.61.xxx.xxx 未訂閱
ADOQuery1.Filtered設成True
procedure TForm1.ADOQuery1FilterRecord(DataSet: TDataSet;
  var Accept: Boolean);
begin
  Accept:=False;
  if (DataSet.RecNo>80) and (DataSet.recNo<100) then
    Accept:=True;
end;
ivankuo
中階會員


發表:132
回覆:272
積分:95
註冊:2002-11-21

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-06-06 14:28:02 IP:61.221.xxx.xxx 未訂閱
pedro前輩: 沒有資料出現耶~~
------
ivankuo
RageCaster
一般會員


發表:1
回覆:21
積分:4
註冊:2003-06-02

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-06-06 16:27:19 IP:202.96.xxx.xxx 未訂閱
sql语句 select top 20 * from [tablename] 你还可以排一下序.比如取金额前50位的那些人. select top 20 from [tablename] order by totalamount desc 依此类推...... 發表人 - RageCaster 於 2003/06/06 16:29:09 發表人 - RageCaster 於 2003/06/06 16:31:13
ivankuo
中階會員


發表:132
回覆:272
積分:95
註冊:2002-11-21

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-06-06 16:30:25 IP:61.221.xxx.xxx 未訂閱
引言: sql语句 select top 50 * from [tablename]
RageCaster兄 select top 只是抓前50筆資料吧~~~ 我要的是第100筆的前後50筆,也就是第50~150筆的資料就好.
------
ivankuo
RageCaster
一般會員


發表:1
回覆:21
積分:4
註冊:2003-06-02

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-06-06 16:38:40 IP:202.96.xxx.xxx 未訂閱
i c ,你要的是序号50-150的那些记录.这在oracle好做.但在SQLSVR的话,我是这么做的. select * into [newtable] from [table] where 1<>1 alter table [newtable] add NEWID [int] IDENTITY (1, 1) NOT NULL insert into (table内所有的字段) select table内所有的字段 from [table] 最后: select * from [newtable] where NEWID between 50 and 150
pgdennis
資深會員


發表:41
回覆:526
積分:443
註冊:2002-05-23

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-06-06 16:42:34 IP:218.163.xxx.xxx 未訂閱
引言: ADOQuery1.Filtered設成True
procedure TForm1.ADOQuery1FilterRecord(DataSet: TDataSet;
  var Accept: Boolean);
begin
  Accept:=False;
  if (DataSet.RecNo>80) and (DataSet.recNo<100) then
    Accept:=True;
end;
這個只能用在dbase,paradox....如果你是用oracle,SQL server..建議用clientdataset就可以用recno了..加上pedro前輩的方法...< >< >
永遠追不上技術更新的速度~~
------
星期一,二...無窮迴圈@@
ivankuo
中階會員


發表:132
回覆:272
積分:95
註冊:2002-11-21

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-06-06 17:27:05 IP:61.221.xxx.xxx 未訂閱
我是用SQL Sever 的,    感謝RageCaster前輩的提供的方式我會參考看看 pgdennis前輩,若用在ClientDataSet 的話也是在ADOQuery1FilterRecord的Event,還是在ClientDataSetㄋ,我都試過耶還是不行.    ADOQuery1.Filtered設成True    procedure TForm1.ADOQuery1FilterRecord(DataSet: TDataSet;   var Accept: Boolean); begin   Accept:=False;   if (DataSet.RecNo>80) and (DataSet.recNo<100) then Accept:=True; end;
------
ivankuo
pgdennis
資深會員


發表:41
回覆:526
積分:443
註冊:2002-05-23

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-06-06 21:36:12 IP:211.74.xxx.xxx 未訂閱
引言: 我是用SQL Sever 的, 感謝RageCaster前輩的提供的方式我會參考看看 pgdennis前輩,若用在ClientDataSet 的話也是在ADOQuery1FilterRecord的Event,還是在ClientDataSetㄋ,我都試過耶還是不行. ADOQuery1.Filtered設成True procedure TForm1.ADOQuery1FilterRecord(DataSet: TDataSet; var Accept: Boolean); begin Accept:=False; if (DataSet.RecNo>80) and (DataSet.recNo<100) then Accept:=True; end;
在clientdataset處理...因為他才是client資料來源.... 原來真的不能跑ㄟ...在 > 永遠追不上技術更新的速度~~< src="http://140.134.4.20/~g8905202/pucca.gif"> 發表人 - pgdennis 於 2003/06/06 21:48:10 發表人 - pgdennis 於 2003/06/06 21:54:40
------
星期一,二...無窮迴圈@@
系統時間:2024-05-20 18:06:50
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!