由於上禮拜發生刪除到期商品頁面的錯誤,
且登入頁面和商家的商品列表未完成,
所以rss尚未開工,
不過有先找了一些資料,
所以本週優先將使用者登入後到上傳商品的流程和使用者登入後列出其拍賣商品的頁面完成後,
即可以開始製作rss的部份.
2009年5月10日 星期日
商品到期機制完成
由於後來發現當用sql select到兩個資料表時,
使用rs.deleterow()會發生錯誤,
發生原因找了好幾天都找不到,
而且因為商品到期時要刪除到3個資料表的的資料,
且一個商品在圖片資料表裡最多可以有4筆紀錄,
用rs.deleterow()的話會造成不易處理且修改困難,
所以打算用回sql delete語法來作刪除的動作,
正好後來又發現之前用sql delete刪除複數資料的原因是出在stmt,
後來用了兩個stmt,
一個用來刪除,
一個用來搜尋,
這樣就成功的完成了商品到期機制,
後來可能會再加入管理者的登入確認,
以防一般使用者發現此頁面造成資料被亂刪的情況.
使用rs.deleterow()會發生錯誤,
發生原因找了好幾天都找不到,
而且因為商品到期時要刪除到3個資料表的的資料,
且一個商品在圖片資料表裡最多可以有4筆紀錄,
用rs.deleterow()的話會造成不易處理且修改困難,
所以打算用回sql delete語法來作刪除的動作,
正好後來又發現之前用sql delete刪除複數資料的原因是出在stmt,
後來用了兩個stmt,
一個用來刪除,
一個用來搜尋,
這樣就成功的完成了商品到期機制,
後來可能會再加入管理者的登入確認,
以防一般使用者發現此頁面造成資料被亂刪的情況.
2009年5月6日 星期三
本週進度
由於前幾天在處理家裡的事情,
所以暫時沒作專題.
這裡拜預計先看一些rss的資料,
接下來就要把每個商家的商品列表都作成rss來給買家訂閱查詢.
另外發現如果使用到有關時間的函式的話,
似乎會造成雖然有存檔,
但是在測試網頁時ie仍然會使用舊的檔案,
要把資料夾或檔案的名稱改過後才會正常.
所以暫時沒作專題.
這裡拜預計先看一些rss的資料,
接下來就要把每個商家的商品列表都作成rss來給買家訂閱查詢.
另外發現如果使用到有關時間的函式的話,
似乎會造成雖然有存檔,
但是在測試網頁時ie仍然會使用舊的檔案,
要把資料夾或檔案的名稱改過後才會正常.
2009年4月30日 星期四
2009年4月28日 星期二
商品到期機制的資料刪除(5/8修改)
原本我的商品到期以後只有設定顯示商品到期,
但是後來加入到期後刪除資料的地方卻發生錯誤,
while(rs.next)
{
int id=rs.getint(article_id);
...
if(設定時間==目前時間)
{
stmt.executeUpdate("delete from time where article_id=id;");
}
}
發生錯誤的地方如上,
如果以這樣方式的話,
在刪除一筆資料時不會錯誤,
但如果有多筆資料的設定時間都一樣時,
刪除第一筆完後就會發生錯誤,
我猜測的原因是因為當刪除時,
rs的指標會因為在刪除第一筆資料後,
檢查下一筆時因為同樣需要刪除,
導致指標可會指向錯誤而發生錯誤.
(後來確定是由於是使用同一個STMT,
所以當我刪除以後就會失去的原本的資料)
而我原本設計成如果到期,
則跳到另一個網頁刪除後再跳回,
想不到同樣會出現錯誤,
而最後我就想直接從rs的地方下手,
上網搜尋了以後發現了rs.deleteRow()函式,
此函是可以直接把目前rs指標指向的資料整筆刪除,
不過一開始要把stmt的rs權限設定為CONCUR_UPDATABLE,
讓它可以去改資料庫的內容,
然後把程式碼改成:
while(rs.next)
{
...
if(設定時間==目前時間)
{
rs.deleteRow()
}
}
這樣就可以直接把到期的商品資料做刪除的動作了.
但是後來加入到期後刪除資料的地方卻發生錯誤,
while(rs.next)
{
int id=rs.getint(article_id);
...
if(設定時間==目前時間)
{
stmt.executeUpdate("delete from time where article_id=id;");
}
}
發生錯誤的地方如上,
如果以這樣方式的話,
在刪除一筆資料時不會錯誤,
但如果有多筆資料的設定時間都一樣時,
刪除第一筆完後就會發生錯誤,
我猜測的原因是因為當刪除時,
rs的指標會因為在刪除第一筆資料後,
檢查下一筆時因為同樣需要刪除,
導致指標可會指向錯誤而發生錯誤.
(後來確定是由於是使用同一個STMT,
所以當我刪除以後就會失去的原本的資料)
而我原本設計成如果到期,
則跳到另一個網頁刪除後再跳回,
想不到同樣會出現錯誤,
而最後我就想直接從rs的地方下手,
上網搜尋了以後發現了rs.deleteRow()函式,
此函是可以直接把目前rs指標指向的資料整筆刪除,
不過一開始要把stmt的rs權限設定為CONCUR_UPDATABLE,
讓它可以去改資料庫的內容,
然後把程式碼改成:
while(rs.next)
{
...
if(設定時間==目前時間)
{
rs.deleteRow()
}
}
這樣就可以直接把到期的商品資料做刪除的動作了.
2009年4月26日 星期日
本週進度
我本週預計先協助組員將每個商家的物品列表完成,
完成以後就可以開始設計商家RSS訂閱系統,
目前整組除了使用者方面的進度比較慢以外,
而商品和搜尋部分都很順利進行中,
較複雜的RSS和GOOGLE MAP部分也應該很快就可以開始進行.
完成以後就可以開始設計商家RSS訂閱系統,
目前整組除了使用者方面的進度比較慢以外,
而商品和搜尋部分都很順利進行中,
較複雜的RSS和GOOGLE MAP部分也應該很快就可以開始進行.
商品到期機制
由於商家和上傳商品的部分尚未整合好,進階搜尋也已經完成,所以我就開始設計商品到期機制.
這個部分不難,主要的問題在於如何得到上傳商品的時間,
而這個功能可以用Calendar.getInstance()來得到系統目前時間,
不用像getyear()、getmonth()這樣分開來抓資料,
例如,
Calendar c=Calendar.getInstance( );
c.get(Calendar.YEAR);
可取得年.
又例如,
c.get(Calendar.MONTH);
可取得月.
所以我上傳商品的就寫入目前的時間和限制的日數,
然後當有使用者查看商品時,
就將上傳時的時間加上限制日數,
和查看時的時間來做比較,
如果相同就顯示商品到期,
不同就給予查看.
另外Calendar.getInstance()的詳細用法和欄位常數可以看這投影片:
點我!!!
這個部分不難,主要的問題在於如何得到上傳商品的時間,
而這個功能可以用Calendar.getInstance()來得到系統目前時間,
不用像getyear()、getmonth()這樣分開來抓資料,
例如,
Calendar c=Calendar.getInstance( );
c.get(Calendar.YEAR);
可取得年.
又例如,
c.get(Calendar.MONTH);
可取得月.
所以我上傳商品的就寫入目前的時間和限制的日數,
然後當有使用者查看商品時,
就將上傳時的時間加上限制日數,
和查看時的時間來做比較,
如果相同就顯示商品到期,
不同就給予查看.
另外Calendar.getInstance()的詳細用法和欄位常數可以看這投影片:
點我!!!
訂閱:
文章 (Atom)