Sybase 8(舊版)取得rownum或分頁時使用sql語法

Sybase並沒有像mysql的limit方法,也沒有Oracle的rownum可以用,要做出分頁或RowNum並不是十分容易,在網路上找了很多資料,大概的做法都差不多,主要都是先把原先的表格排序後給於編號,並存入一個暫存的table裡,再利用這個table去Select出要的範圍的資料,不過如果資料量十分驚人時是否還可以用呢?最少比直接把資料回傳至前端再來跑for loop快。

底下提供一個利用join方式來刮掉不需要的範圍:

Read More

[Java]JDBC連線操作HSQLDB資料庫的範例

hsqldb是個不用安裝也不用啟動的database資料庫,在openoffice裡的base資料庫也是使用此種資料庫,只是再把檔案入放進一個壓縮檔裡而已,所以如果想在openoffice裡操作base資料庫,需要先把檔案解開(在程式裡),再取裡面的資料載來做操作,因為不需要安裝,所以在使用jdbc連線後,如需關閉資料庫,需要使用傳送SQL語法使關閉Statement.execute(“SHUTDOWN”);。

底下有一個簡單的範裡,包含了新增、刪除、查詢、建立資料表及刪除資料表等操作,範例如果如下:

hsqldb1.png

1.先下載jdbc driver

http://sourceforge.net/project/showfiles.php?group_id=23316

解壓縮後把資料夾裡的lib/hsqldb.jar放到classpath裡

Read More

[Java]SiteMap Creater-簡單的SiteMap建立程式

SiteMapCreater主要的功能在自動產生SiteMap.xml,只需要在資料庫表格裡建立所要產生的SiteMap網址等資訊就可以執行它來自動產生需要的SiteMap而提交給Google或yahoo等搜尋引擎。

這個程式主要是獨立作業的,可以利用windows或是linux的排程來執行jar run就可以了,這樣子可以減少對伺服器的負擔。

程式的作法是從資料庫取得資料,再把資料加上xml需要的字串,然後最後輸出成檔案就可以了,中間有些需要注意的地方,像是筆數不可太多,此程式設定4000筆會換一個檔案名稱,還有檔案也不可超過太大,8mb以下或更小。

執行後會得到以下檔案,一個index的Sitemap.xml及實際的內容的Info0.xml,另外還需要一個xsl來當讀取樣版的準則,向搜尋引擎只需要提交Sitemap.xml這個檔案就可以了,程式還會自動把所有檔案變成一個zip檔,google可以提交zip檔案做為SiteMap,不過此部份並未成功,有興趣的朋友可以再加以改進。

SiteMap1.png

Read More

自動取號AutoEnCode-Oracle Stored Procedures

Oracle裡並沒有像MySql那樣子有自動編號的功能,

如果需要產生不重覆的編號,這時就需要自己動手來做了,

大概的方法有二,不過概念基本上是相同的,

想法,利用一個Table存放編號資料,例如檔頭碼長取號的來源(那一個Table)

每次需要取號時則跟此Table要資訊,並把碼長+1存放回去,順便回傳碼長+1

可以利用程式來編寫或是直接在Oracle上寫Sotre Procedures或function

比較建議在Oracle上直接撰寫sp,這樣子不管是其它的SP或是Server上的程式二者均可使用,

不需要另外再行撰寫

Read More