BorlandUser
中階會員
 
 發表:148 回覆:217 積分:73 註冊:2004-02-19
發送簡訊給我
|
本人:
select max(user_id) as max_user_id from user where ..... 當我用recordcount去check下時,居然係大過1,即係剛與我所有record的數目?為何呢?不是應該recordcount只有1個嗎? 用sqlquery去做
|
pgdennis
資深會員
   
 發表:41 回覆:526 積分:443 註冊:2002-05-23
發送簡訊給我
|
如果MAX的那個usr剛好有兩個以上的Connection在DB上
那recordcount就會大於一 ![]()
>
永遠追不上技術更新的速度 發表人 -
------ 星期一,二...無窮迴圈@@
|
BorlandUser
中階會員
 
 發表:148 回覆:217 積分:73 註冊:2004-02-19
發送簡訊給我
|
但我那個user_id是auto increment的primary key? why?那我又何方法找到最大的record的id呢?
|
shinhrn
中階會員
 
 發表:54 回覆:165 積分:83 註冊:2002-06-05
發送簡訊給我
|
引言:
但我那個user_id是auto increment的primary key? why?那我又何方法找到最大的record的id呢?
會不會是下了group by ....?
|
BorlandUser
中階會員
 
 發表:148 回覆:217 積分:73 註冊:2004-02-19
發送簡訊給我
|
無,只是一般select...不然你也試一試會否有同樣結果? ~_~"
|
Chance36
版主
    
 發表:31 回覆:1033 積分:792 註冊:2002-12-31
發送簡訊給我
|
BorlandUser 你好 不知你用的是那個資料集元件、連結資料庫為何及使用的連結為何(bde、odbc、ado、dbExpress)?
某些狀況下的DataSet.Recount是不正確的,在本站有相當多關於RecordCount的討論,常常都有提到這個情形,只是沒有人整理其真正的原因及什麼狀況下正確而又什麼情況下不正確?
反過來說,你要取得最大的ID,sql語法沒錯(我也常常這樣使用),怎麼會去檢查RecordCount呢?
|
BorlandUser
中階會員
 
 發表:148 回覆:217 積分:73 註冊:2004-02-19
發送簡訊給我
|
我用dbexpress 的sqlquery 不過我用recordcount的原因是假設找出來的結果是沒有,那可以作為一個validation..
|
Chance36
版主
    
 發表:31 回覆:1033 積分:792 註冊:2002-12-31
發送簡訊給我
|
引言:
我用dbexpress 的sqlquery 不過我用recordcount的原因是假設找出來的結果是沒有,那可以作為一個validation..
BorlandUser 你好
一般我都是在 sqlQuery.Open;// 之後判斷SqlQuery是否Eof 方式解決
If SqlQuery.Eof Then Begin
// 表示找不到最大值
End Else Begin
// 表示有最大值
End;
|
stillalive
初階會員

 發表:7 回覆:148 積分:41 註冊:2004-04-07
發送簡訊給我
|
替chance36大大補充一下 ,
完整程式碼 max_no := 0 ; while not SqlQuery.Eof do begin if SqlQuery.FieldByName('user_id').AsInteger > max_no then begin max_no := SqlQuery.FieldByName('user_id').Integer ;
end; SqlQuery.Next ; end;
|
Mickey
版主
    
 發表:77 回覆:1882 積分:1390 註冊:2002-12-11
發送簡訊給我
|
正如 Chance36 兄所說的, 從 TCustomSQLDataSet.RecordCount 的說明看來, RecordCount 很不可靠, 如果你的需求一定要取得正確的 RecordCount 的話, 可以考慮用 TSQLQuery->TDataSetProvider->TClientDataSet, 然後用 TClientDataSet 來操作, 但需付出增加 Midas 的代價, 您自己衡量看看吧.
|