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

我只要取出3筆 Record

答題得分者是:channel
eric039
中階會員


發表:57
回覆:126
積分:51
註冊:2002-11-30

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-03-18 14:40:42 IP:211.75.xxx.xxx 未訂閱
要從SQL 資料庫中將資料取出3筆。 我只要符合條件的那1筆及上下2筆。 請問要如何改以下的程式。 qyTemp.Sql.Add('Select * from product'); qyTemp.Sql.Add('Where ProductNo = :pProductNO'); qyTemp.Parameters.ParamByName('pProductNo').Value = 'P00005'; qyTemp.Open; 感謝各位 Eric Lin
------
Eric Lin
channel
尊榮會員


發表:67
回覆:707
積分:854
註冊:2002-05-02

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-03-18 15:07:22 IP:211.21.xxx.xxx 未訂閱
引言: 要從SQL 資料庫中將資料取出3筆。 我只要符合條件的那1筆及上下2筆。 請問要如何改以下的程式。 qyTemp.Sql.Add('Select * from product'); qyTemp.Sql.Add('Where ProductNo = :pProductNO'); qyTemp.Parameters.ParamByName('pProductNo').Value = 'P00005'; qyTemp.Open; 感謝各位
qyTemp.Sql.Add('Select p1.* from product p1'); qyTemp.Sql.Add('Where (p1.ProductNo = :pProductNO) or'); qyTemp.Sql.Add('(p1.ProductNo = (Select Max(ProductNo) From product p2 where p2.ProductNo < :pProductNO)) or') qyTemp.Sql.Add('(p1.ProductNo = (Select Min(ProductNo) From product p3 where p3.ProductNo > :pProductNO))') qyTemp.Parameters.ParamByName('pProductNo').Value = 'P00005'; qyTemp.Open; 這樣應該就可以了 ~小弟淺見,參考看看~ 發表人 - channel 於 2003/03/18 15:13:29
------
~小弟淺見,參考看看~
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-03-18 16:20:08 IP:218.16.xxx.xxx 未訂閱
好辦法,拍拍手。    只是提醒一點, Query.Params 是笨笨的 一個 Param 不能用在數處要分數個 Params 另外 好像是 qyTemp.Params.ParamByName(... 罷? TQuery 不需要綠色部份 (但用也沒問題) TSQLQuery 需要綠色部份    qyTemp.Sql.Add('Select p1.* from product p1'); qyTemp.Sql.Add('Where (p1.ProductNo = :pProductNO) or'); qyTemp.Sql.Add('(p1.ProductNo = (Select Max(ProductNo) From product p2 where p2.ProductNo < :pProductNO1)) or') qyTemp.Sql.Add('(p1.ProductNo = (Select Min(ProductNo) From product p3 where p3.ProductNo > :pProductNO2))') qyTemp.Params.ParamByName('pProductNo').Value = 'P00005'; qyTemp.Params.ParamByName('pProductNo1').Value = 'P00005'; qyTemp.Params.ParamByName('pProductNo2').Value = 'P00005'; qyTemp.Open; 發表人 - channel 於 2003/03/18 15:13:29 [/quote]
channel
尊榮會員


發表:67
回覆:707
積分:854
註冊:2002-05-02

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-03-18 16:33:44 IP:211.21.xxx.xxx 未訂閱
引言: 好辦法,拍拍手。 只是提醒一點, Query.Params 是笨笨的 一個 Param 不能用在數處要分數個 Params 另外 好像是 qyTemp.Params.ParamByName(... 罷? TQuery 不需要綠色部份 (但用也沒問題) TSQLQuery 需要綠色部份 qyTemp.Sql.Add('Select p1.* from product p1'); qyTemp.Sql.Add('Where (p1.ProductNo = :pProductNO) or'); qyTemp.Sql.Add('(p1.ProductNo = (Select Max(ProductNo) From product p2 where p2.ProductNo < :pProductNO1)) or') qyTemp.Sql.Add('(p1.ProductNo = (Select Min(ProductNo) From product p3 where p3.ProductNo > :pProductNO2))') qyTemp.Params.ParamByName('pProductNo').Value = 'P00005'; qyTemp.Params.ParamByName('pProductNo1').Value = 'P00005'; qyTemp.Params.ParamByName('pProductNo2').Value = 'P00005'; qyTemp.Open; 發表人 - channel 於 2003/03/18 15:13:29
Justmade兄: 雖然Query.Params笨笨的,但是我測試過,應該用相同的Params應該是沒有問題! ~小弟淺見,參考看看~
------
~小弟淺見,參考看看~
Justmade
版主


發表:94
回覆:1934
積分:2030
註冊:2003-03-12

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-03-18 17:01:57 IP:218.16.xxx.xxx 未訂閱
喔,以前我在 Delphi 5 時一直都不行...最近升級 Delphi 7 沒試過,不知是否有差或是我以前弄錯了,謝謝改正。
eric039
中階會員


發表:57
回覆:126
積分:51
註冊:2002-11-30

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-03-18 17:57:12 IP:211.75.xxx.xxx 未訂閱
感謝 Channel 兄,已經可以了。 Eric Lin
------
Eric Lin
系統時間:2024-06-28 17:29:44
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!