![]() ![]() ![]() ![]() |
|||||
|
|||||
樓主 FAQ ![]()
![]() |
A欄位=不可重覆的唯一值 B欄位=可重覆 C欄位=不可重覆的唯一值 我用下面的方式抓出C欄位的值 照理說不符合的話就抓不出來,若符合的話就只有一筆 SELECT * FROM 資料表 WHERE A欄位='變數1' AND B欄位='變數2' 可是有時抓出來C欄位的結果不是我所搜尋的那一筆 但我確定'變數1'跟'變數2'沒有輸入錯,C欄位確是顯示其它筆的資料 這個機率大約是萬分之一吧? 請問你們也有發生過這種事嗎? 我的主機是跑WEB交友網站,每日流量約6000人 資料庫是用ACCESS2000,每日資料搜尋約6000x6次以上 記憶體勝創256MBx2支,不支援Register ECC 而我前面提到的SELECT出資料後跟WHERE的條件不同 從Recordset.open之前到取出資料之後都沒有用 Application.Lock跟Application.unLock 請問這個問題是如何發生的,要如何解決呢?
本篇文章發表於2002-03-20 15:50
|
1樓 |
您若用
SELECT * FROM 資料表 WHERE A欄位='變數1' AND B欄位='變數2' 應該最多只有一筆, 但由於變數1,2與欄位C 看不出關係, 因此無法判斷為何會錯 您的意思是說, 用了上述的SQL Statement後, 找出來的那一筆, 欄位C的值與您親自到database中找的值不同, 但欄位A,B都與變數1,2相同嗎? 應該不會吧!?
本篇文章回覆於2002-03-20 16:11
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
2樓
作者回應
FAQ ![]() |
對就是這個樣字,我就比方說吧…
你輸入你的ID"AA"跟密碼"BB"登入後,應該顯示你的名字"使用者AB" 可是結果確顯示你的名字"使用者CD" 可是我看資料庫中"使用者CD"的ID是"CC"密碼是"DD" 真的有這樣子的事發生 都是我的會員在登入之後,自己的資料確顯示別的會員的資料 這個機率大約是萬分之一吧?
本篇文章回覆於2002-03-20 16:54
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
3樓 |
FAQ,
對不起, 我很難相信會有這種狀況 可否請您試著在user login時, 將 sql statement寫出來, 看看是否真的為 select * from tablename where loginid='AA' and pwd='bb' open recordset後, 再response.write,看看3個欄位是否如您所說是錯的
本篇文章回覆於2002-03-20 17:06
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
4樓 |
Allen.......
跟你說,你不像信也得信喔!因為我有兩三次在奇摩都入我的帳號後,結果出來的不是我的而是別人帳號的內容.....信不信!厲害吧!^^" 想不到Yahoo!Kimo也會發生,而且不只一次喔!
本篇文章回覆於2002-03-20 19:23
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
5樓 |
好手,
我猜 kimo 應該是用Oracle,那麼, 我更不相信會有您說的狀況, 如果是Applicatoin程式的bug,我相信, 但我想Oracle要出錯,連一億分之一的可能我都不信。
本篇文章回覆於2002-03-21 11:04
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
6樓 |
打死我都不相信會有這種事....
身為資管的我,似乎在幾年前也說過類似的話... 打死我都不念資管 -.-|||
本篇文章回覆於2002-03-21 11:14
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
7樓
作者回應
FAQ ![]() |
那我在
從Recordset.open之前到取出資料之後都加上 Application.Lock跟Application.unLock 會不會有可能解決 我之前不用是因為效能的關係,可是現在出錯 如果能解決我就要加了
本篇文章回覆於2002-03-21 11:29
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
8樓 |
我不相信, 但請別試著把我打死 :-)
資料庫出這種問題是非常嚴重的事, 產業界資料庫中多達數億筆記錄的並非少見, 因此我不相信, 相對地, 撰寫錯誤的程式碼來取得不正確的記錄就容易得多了, 我不是指FAQ一定是程式寫錯了, 依他的說法, 畢竟大多數的人都可以正常login, 我不清楚真正原因, 但可以查查是否是邏輯上的錯誤。
本篇文章回覆於2002-03-21 11:34
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
9樓 |
FAQ我想, 使用lock是沒用的, 如果只有發生在login,煩請將login page的source code寄給我看一下, 並告知您的網址, 我連上去試試
本篇文章回覆於2002-03-21 11:39
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
10樓 |
我覺得問題應該是我的資料庫壞了吧,雖然我每次都有用壓縮與修復的功能
但好像沒有 而你提到的login的部份,就跟一般的一樣,兩個輸入框 SQL就直接抓Request("")裡的值來判斷,沒有什麼不大一樣的 因為我還遇到一個問題,所以應該是我的資料庫壞了吧 這是其中一筆資料,就剛好是這一筆,每次都出現這個問題 明明資料庫中有這筆喔,我也去查過 asp程式大概在下面 ========= IF rs.EOF THEN Response.write "<meta http-equiv=Content-Type content=text/html; charset=big5><script>alert('此帳號可能遭到使用者本人或系統刪除,所以無此資料');history.back()</script>" Response.end END IF Response.write "資料搜尋完成,沒有問題" ========== 結果畫面顯示出"資料搜尋完成,沒有問題",應該是NOT rs.EOF了 可是馬上又跳出'此帳號可能遭到使用者本人或系統刪除,所以無此資料'的對話框 變成是符合rs.EOF的狀態 真不知在搞什麼 我有試過將資料庫移到別的主機上,一樣有這種問題
本篇文章回覆於2002-03-21 12:09
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
11樓 |
而我前面提到的"資料搜尋完成,沒有問題"
程式也有將搜尋到的資料給抓出來
本篇文章回覆於2002-03-21 12:11
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
12樓 |
IF rs.EOF THEN
Response.write "<meta http-equiv=Content-Type content=text/html; charset=big5><script>alert('此帳號可能遭到使用者本人或系統刪除,所以無此資料');history.back()</script>" Response.end END IF Response.write "資料搜尋完成,沒有問題" 這一段我有些疑問.... 就執行序而言.... 既然已經執行到Response.write "資料搜尋完成,沒有問題" 為何又會回頭去執行rs.Eof的判斷呢????
本篇文章回覆於2002-03-21 13:12
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
13樓
作者回應
FAQ ![]() |
對,就是奇怪在這
約一萬筆資料中,就只有這一筆SELECT出來後會這樣 所以我覺得我的ACCESS壞了
本篇文章回覆於2002-03-21 16:32
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
14樓 |
問題是..今天資料庫出問題..最多也只是查出來的資料不正確或是查不到資料...
不可能會讓程式去回頭執行前面幾行吧.... 這應該是程式的問題..而非資料庫的問題...
本篇文章回覆於2002-03-21 16:50
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
15樓 |
介不介意把網址和那個錯的帳號密碼給我們測試~~
本篇文章回覆於2002-03-21 17:01
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
回覆 |
如要回應,請先登入. |