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

請問如何搜尋ACCESS非文字欄位的值呢?

尚未結案
sue690226
一般會員


發表:23
回覆:15
積分:7
註冊:2004-07-24

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-12-16 19:32:54 IP:61.31.xxx.xxx 未訂閱
各位工程師好:小弟請問一下今天我由 "SELECT ID From File_Queue 'COMPUTE MIN(ID)'"; 中得到一個我要的ID最小值 再來我希望由我得到的最小值再去和另外一個欄位State去搜尋出我要的那比資料。 請問我該怎麼作呢? 我已經可以得到最小值但是我要重新尋找時ID的部分都會說我的型態和資料庫的不一樣。 以下是我的部分程式請各位幫我看看~謝謝 AnsiString Temp; long Value; Temp="SELECT ID From File_Queue 'COMPUTE MIN(ID)'"; DM->ADOQuery1->Close(); DM->ADOQuery1->SQL->Clear(); DM->ADOQuery1->SQL->Add(Temp); DM->ADOQuery1->Open(); Value=DM->ADOQuery1->FieldByName("ID")->AsInteger; Temp="SELECT * From File_Queue WHERE ID=' Value ' AND State='PEN'"; DM->ADOQuery1->Close(); DM->ADOQuery1->SQL->Clear(); DM->ADOQuery1->SQL->Add(Temp); DM->ADOQuery1->Open();
allenchan
資深會員


發表:10
回覆:306
積分:283
註冊:2004-01-06

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-12-17 00:26:11 IP:61.62.xxx.xxx 未訂閱
AnsiString Temp;  long Value;  Temp="SELECT ID From File_Queue 'COMPUTE MIN(ID)'";  DM->ADOQuery1->Close();  DM->ADOQuery1->SQL->Clear();  DM->ADOQuery1->SQL->Add(Temp);  DM->ADOQuery1->Open();  Value=DM->ADOQuery1->FieldByName("ID")->AsInteger;  Temp="SELECT * From File_Queue WHERE ID=' Value ' AND State='PEN'"; Temp="SELECT * From File_Queue WHERE ID='" IntToStr(Value) "' AND State='PEN'"; DM->ADOQuery1->Close(); DM->ADOQuery1->SQL->Clear(); DM->ADOQuery1->SQL->Add(Temp); DM->ADOQuery1->Open(); 發表人 - allenchan 於 2004/12/17 00:27:14
huanyuan
一般會員


發表:18
回覆:48
積分:18
註冊:2003-07-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-12-17 00:28:50 IP:220.135.xxx.xxx 未訂閱
上面
引言: 各位工程師好:小弟請問一下今天我由 "SELECT ID From File_Queue 'COMPUTE MIN(ID)'"; 中得到一個我要的ID最小值 再來我希望由我得到的最小值再去和另外一個欄位State去搜尋出我要的那比資料。 請問我該怎麼作呢? 我已經可以得到最小值但是我要重新尋找時ID的部分都會說我的型態和資料庫的不一樣。 以下是我的部分程式請各位幫我看看~謝謝 AnsiString Temp; long Value; Temp="SELECT ID From File_Queue 'COMPUTE MIN(ID)'"; DM->ADOQuery1->Close(); DM->ADOQuery1->SQL->Clear(); DM->ADOQuery1->SQL->Add(Temp); DM->ADOQuery1->Open(); Value=DM->ADOQuery1->FieldByName("ID")->AsInteger; Temp="SELECT * From File_Queue WHERE ID=" IntToStr(Value) " AND State='PEN'"; DM->ADOQuery1->Close(); DM->ADOQuery1->SQL->Clear(); DM->ADOQuery1->SQL->Add(Temp); DM->ADOQuery1->Open();
上面紅色的部份改看看這樣可不可以...試看看囉... 發表人 - huanyuan 於 2004/12/17 00:38:11
sue690226
一般會員


發表:23
回覆:15
積分:7
註冊:2004-07-24

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-12-17 01:12:15 IP:203.67.xxx.xxx 未訂閱
引言: 上面
引言: 各位工程師好:小弟請問一下今天我由 "SELECT ID From File_Queue 'COMPUTE MIN(ID)'"; 中得到一個我要的ID最小值 再來我希望由我得到的最小值再去和另外一個欄位State去搜尋出我要的那比資料。 請問我該怎麼作呢? 我已經可以得到最小值但是我要重新尋找時ID的部分都會說我的型態和資料庫的不一樣。 以下是我的部分程式請各位幫我看看~謝謝 AnsiString Temp; long Value; Temp="SELECT ID From File_Queue 'COMPUTE MIN(ID)'"; DM->ADOQuery1->Close(); DM->ADOQuery1->SQL->Clear(); DM->ADOQuery1->SQL->Add(Temp); DM->ADOQuery1->Open(); Value=DM->ADOQuery1->FieldByName("ID")->AsInteger; Temp="SELECT * From File_Queue WHERE ID=" IntToStr(Value) " AND State='PEN'"; DM->ADOQuery1->Close(); DM->ADOQuery1->SQL->Clear(); DM->ADOQuery1->SQL->Add(Temp); DM->ADOQuery1->Open();
上面紅色的部份改看看這樣可不可以...試看看囉... 對不起~這樣子不可以因為 我的資料庫內ID是長整數所以不可以轉成字串 發表人 - huanyuan 於 2004/12/17 00:38:11
allenchan
資深會員


發表:10
回覆:306
積分:283
註冊:2004-01-06

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-12-17 01:37:02 IP:61.62.xxx.xxx 未訂閱
Temp="SELECT * From File_Queue WHERE ID=" IntToStr(Value) " AND State='PEN'"; IntToStr 只是為了將讓您做字串相加用。 不然你這樣用好了: AnsiString Temp; Temp.sprintf("SELECT * From File_Queue WHERE ID=%d AND State='PEN'", Value); 發表人 - allenchan 於 2004/12/17 01:44:30
folkchen
高階會員


發表:9
回覆:232
積分:173
註冊:2003-10-09

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-12-17 08:36:09 IP:211.20.xxx.xxx 未訂閱
huanyuan大大的方式應該不會不行呀 你有真的試RUN過嗎 因為資料庫中的型態是取決於 Temp="SELECT * From File_Queue WHERE ID=" IntToStr(Value) " AND State='PEN'"; ID= 的後面的值有沒有加單引號 而不是 Value 變數本身是什麼型態 你發生錯誤的地方是BCB告訴你的,所以是BCB在串字串TEMP時發生的錯誤 因為TEMP是AnsiString,但是Value是Int,所以BCB不接受,而huanyuan的方式是可以解決你的問題才對 SQL本身的型態錯誤,在編譯時不會發生,只有在執行到那一行時才會發生錯誤 而allenchan大大的第一個貼文,不小心在ID=的後面多了單引號,所以會造成SQL的型態不符 所以你先確定一下是在執行時出現型態錯誤,還是編譯時出現型態錯誤 才能解決問題 發表人 - folkchen 於 2004/12/17 08:40:57
sue690226
一般會員


發表:23
回覆:15
積分:7
註冊:2004-07-24

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-12-17 19:49:19 IP:61.222.xxx.xxx 未訂閱
謝謝我解決了!我是採用Temp.sprintf("SELECT * From File_Queue WHERE ID=%d AND State='PEN'", Value);的方式 謝謝你們大家都幫我!不過我只能給一個人錦標~謝謝各位
系統時間:2024-05-19 5:59:15
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!