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

在下了MAX的SQL指令後,如何得到該欄位的值呢?

答題得分者是:tech_state
jackwu
一般會員


發表:28
回覆:54
積分:16
註冊:2002-08-18

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-06-05 09:42:08 IP:211.75.xxx.xxx 未訂閱
各位:      如題,下了MAX的SQL指令後,我希望可以的到所選出的最大值,code如後。但是我的寫法有錯,因為會出現"Field 'ID' is of an unknown type",我應該要如何改呢?謝謝    
   
   UTStateQuery->SQL->Clear();
   UTStateQuery->SQL->Add("SELECT MAX(ID) FROM UTState");
   UTStateQuery->SQL->Add("VALUES (:ID)");
   int index = UTStateQuery->Params->ParamByName("ID")->AsInteger;
   UTStateQuery->Params->ParseSQL(UTStateQuery->SQL->Text, true);
   UTStateQuery->ExecSQL(); 
欄位ID為一個識別欄位數值不可覆寫
tech_state
版主


發表:44
回覆:638
積分:641
註冊:2003-02-10

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-06-05 10:14:30 IP:61.221.xxx.xxx 未訂閱
jackwu, 您好 sorry, 我看不太懂您的寫法。 不過,如果是要得到所選出的最大值,我的寫法如下: < class="code"> UTStateQuery->Close(); UTStateQuery->SQL->Clear(); UTStateQuery->SQL->Add("SELECT MAX(ID) as Max_ID FROM UTState"); UTStateQuery->Open(); int index = UTStateQuery->FieldByName("Max_ID")->AsInteger; ShowMessage(index); 不知這樣是否符合您的需求? ================================= 涵養怒中氣。謹防順口言。留心忙裡錯。珍惜有時錢。 是非終日有,不聽自然無 天下本無事,庸人自擾之
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-06-05 10:44:21 IP:203.95.xxx.xxx 未訂閱
Hi, 可以利用 tech_state 版主的作法. 給一個 alias 的 column name 來進行, 若是沒有 alias column name 的話, 可以直接使用 k = UTStateQuery->Fields->Fields[0]->AsInteger; 來取得該 max 值. 另外也要注意的地方就是 ExecSQL 和 Open 的問題. 若是有傳回資料的話, 必須要使用 Open 來取得, ExecSQL 是使用在 Update, Insert, Delete 等操作性的語法. 詳情請參閱其他討論文章!!
jackwu
一般會員


發表:28
回覆:54
積分:16
註冊:2002-08-18

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-06-05 10:49:41 IP:211.75.xxx.xxx 未訂閱
引言: jackwu, 您好 sorry, 我看不太懂您的寫法。 不過,如果是要得到所選出的最大值,我的寫法如下: < class="code"> UTStateQuery->Close(); UTStateQuery->SQL->Clear(); UTStateQuery->SQL->Add("SELECT MAX(ID) as Max_ID FROM UTState"); UTStateQuery->Open(); int index = UTStateQuery->FieldByName("Max_ID")->AsInteger; ShowMessage(index); 不知這樣是否符合您的需求?
謝謝tech_state 依照妳的方式已經可以使用 不過我想要提出問題 當使用UTStateQuery->Open();可以很正常的執行,但如果將Open改為ExecSQL時 就會出現"Field Max_ID not Found",是因為Open的指令會傳回資料結果集(Result DataSet)的關係,才能找到Max_ID嗎?
jackwu
一般會員


發表:28
回覆:54
積分:16
註冊:2002-08-18

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-06-05 10:51:11 IP:211.75.xxx.xxx 未訂閱
引言: Hi, 可以利用 tech_state 版主的作法. 給一個 alias 的 column name 來進行, 若是沒有 alias column name 的話, 可以直接使用 k = UTStateQuery->Fields->Fields[0]->AsInteger; 來取得該 max 值. 另外也要注意的地方就是 ExecSQL 和 Open 的問題. 若是有傳回資料的話, 必須要使用 Open 來取得, ExecSQL 是使用在 Update, Insert, Delete 等操作性的語法. 詳情請參閱其他討論文章!!
剛剛回完文章才發現timhuang大大已經將我的疑惑解決 謝謝timhuang
系統時間:2024-04-19 21:48:05
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!