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

請問如何將Query結果放在List或Array中處理?

尚未結案
ajyi
一般會員


發表:1
回覆:4
積分:1
註冊:2003-01-07

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-01-07 16:22:21 IP:210.66.xxx.xxx 未訂閱
請問各位先進,在使用TQuery將資料Query出來後,如何將所得到的資料儲存在陣列中呢? 是否有已經包裝好的元件可以像在TDataSet中一樣使用Next(),Eof,RecordCount等屬性及方法? 因為我需要將結果儲存在function Scope的變數中,使用遞迴呼叫運算時才不會有問題。 發表人 - ajyi 於 2003/01/08 08:02:48 發表人 - ajyi 於 2003/01/08 08:45:00
yehcwin
一般會員


發表:1
回覆:10
積分:2
註冊:2002-06-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-01-16 15:03:49 IP:203.69.xxx.xxx 未訂閱
有沒有試過 TStringList . 它有locate的效果,也可以做sort,可是只能儲存兩個值. 若搭配Variant陣列應該可以做到多欄位的效果.
ajyi
一般會員


發表:1
回覆:4
積分:1
註冊:2003-01-07

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-01-21 15:41:04 IP:211.72.xxx.xxx 未訂閱
引言: 有沒有試過 TStringList . 它有locate的效果,也可以做sort,可是只能儲存兩個值. 若搭配Variant陣列應該可以做到多欄位的效果.
TString在功能上的確很方便, 但TStringList不是只能add AnsiString的值嗎? 如何搭配Variant Array呢? 是把Query出來的一筆Record中的每個欄位值塞入一個TStringList中嗎? 如: TStringList sl1=new TStringList(); for (int i=0;iFieldCount;i ){ sl1->Add(TQuery->Fields->Fields[i]->AsString); } 又或把一Record儲存成一個Variant Array, 但要如何將Variant Array加到TStringList呢? Thanks
william
版主


發表:66
回覆:2535
積分:3048
註冊:2002-07-11

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-01-21 16:01:27 IP:147.8.xxx.xxx 未訂閱
Have you ever thought of creating the query at run time? Or copying the query result to some kind of memory table (e.g. TClientDataSet)?
yehcwin
一般會員


發表:1
回覆:10
積分:2
註冊:2002-06-11

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-01-21 18:02:00 IP:203.69.xxx.xxx 未訂閱
------------ 存入 ------------------ // ID:Key值 for (int i=0;i〈RecordCount;i ){ sl1->Add(pQuery->Fields->Fields[ID]->AsString "=" String(i)); } Variant aVariant[iRecordCount] ; int j=0 for (pQuery->First();!pQuery->Eof;pQuery->Next()){ aVariant[j] = VarArrayCreate( OPENARRAY(int,(0,FieldCount-1)), varVariant ) ; for (int i=0;i〈FieldCount;i ){ aVariant[j].PutElement( pQuery->Fields->Fields[i]->Value, i ); } j ; } ------------- 取出 ------------------------- // IDValue:pQuery->Fields->Fields[ID]->AsString aVariant[sl1->Values[IDValue].ToInt()].GetElement( i ); 發表人 - yehcwin 於 2003/01/21 18:13:38
ajyi
一般會員


發表:1
回覆:4
積分:1
註冊:2003-01-07

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-01-24 15:30:24 IP:211.72.xxx.xxx 未訂閱
謝謝yehcwin的回覆, 我想依照你的方法應該可行, 再次謝謝
ajyi
一般會員


發表:1
回覆:4
積分:1
註冊:2003-01-07

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-01-24 15:36:14 IP:211.72.xxx.xxx 未訂閱
引言: Have you ever thought of creating the query at run time? Or copying the query result to some kind of memory table (e.g. TClientDataSet)?
I need to create a result set which is copied from a query result at run time. I have tried TField , but it need to connect to db and it is not I want. Maybe using TClientDataSet is a good way, I will try that.Thanks.
alvin1108
一般會員


發表:8
回覆:8
積分:3
註冊:2005-05-06

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-06-04 03:57:31 IP:203.67.xxx.xxx 未訂閱
引言: ------------ 存入 ------------------ // ID:Key值 for (int i=0;i〈RecordCount;i ){ sl1->Add(pQuery->Fields->Fields[ID]->AsString "=" String(i)); } Variant aVariant[iRecordCount] ; int j=0 for (pQuery->First();!pQuery->Eof;pQuery->Next()){ aVariant[j] = VarArrayCreate( OPENARRAY(int,(0,FieldCount-1)), varVariant ) ; for (int i=0;i〈FieldCount;i ){ aVariant[j].PutElement( pQuery->Fields->Fields[i]->Value, i ); } j ; } ------------- 取出 ------------------------- // IDValue:pQuery->Fields->Fields[ID]->AsString aVariant[sl1->Values[IDValue].ToInt()].GetElement( i ); 發表人 - yehcwin 於 2003/01/21 18:13:38
發表人 - alvin1108 於 2005/06/05 00:16:28
系統時間:2024-05-04 5:18:51
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!