MySQL 使用RowNumber方式

Oracle及MS-SQL都有RowNumber的語法可用

MySQL則需要使用一些技巧

資料

QueryResult

加了Rownumber後

MySQL_RowNumber
如果只是要做分頁效果則使用

limit Start_Row,Page Of Row

limit 10,20

[JAVA]聯絡我們表單程式後台

前一篇介紹過聯絡我們的的前台程式,這篇會介紹如何取得前台聯絡表單所留言的內容,使用的網頁使用framework有jquery及easyui,利用datagrid來顯示所有的資料列,而重要的留言內容則顯示於iframe裡,如此可排除大部份的html tag產生的問題。

這程式目前缺少了幾個功能,並不影響使用,不過如果有需求的人倒可以自己加入使用:

  • 前台留言後自動發mail給某位管理者
  • 後台可回覆留言給使用者,寄送mail或電話聯絡後寫下聯絡事項

最主要是JavaMail的使用,及資料寫入資料庫的應用。

更多內容 [JAVA]聯絡我們表單程式後台

[PHP]自動取號(編碼)程式

使用php撰寫程式的人,最常使用的資料庫應該是MySQL,MySQL本身已經有提供自動取號的功能,不過在某些狀況上可能並不適用,而已也有些資料庫並沒有提供自動給號的功能的。

自動取號,主要用在key值的產生,可以得到唯一的編號,而這個編號是有一定規則的,像是(檔頭+年份+流水號)之類的,用來識別此筆資料,而產生這個編號有很多種方式,如:

  • 資料庫本身提供此功能,ex:mysql的Auto Increment
  • 利用一個Table存放目前編號,再使用stored procedure或是程資語言來取號
  • 其它...

之前有寫過一個Oracle Store procedure的取號程式,而這次提供利用php程式來取得編號,取號的原則有幾個來確保取號不會錯誤:

  1. 取號後,不管有無使用,則此編號已不會再產生
  2. 要使用transaction功能來取號及存入取到號碼(此範例並未用到交易)

這個範列的結果

更多內容 [PHP]自動取號(編碼)程式

c3p0 ConnectionPools設置與使用

c3p0是一個基於JNDI-bindable DataSources(使用DriverManager-based)的很容易使用的JDBC驅動函數庫。

所以在使用c3p0時,還需要一個JDBC的Driver,才能使用,而c3p0的作用只是控制Database的Connection使用,舉個簡單的例子,當Connection被DataBase Server timeout斷線後,c3p0會自動多次去重新連線,避免程式就直接丟出SQLException。

這次剛好遇到Microsoft SQL Server 2005不知為何一直丟出以下訊息,才去找到c3p0來使用的,發生的原因似乎是SQL Server本身對JDBC的Connection TimeOut斷線、或是Connection數不夠。

下面是一個範例,結果如下圖:

c3p0.png

更多內容 c3p0 ConnectionPools設置與使用

Csharp使用ADO.NET操作SQLite

SQLite是一個簡易的資料庫系統,開放原始碼,可以直接把SQLite綁在程式裡使用,FireFox及Android等軟體也都有內建SQLite。SQLite不需要安裝,看起來就只是一個檔案而已,也可以使用memory模式,讓它存在記憶體中而不需要建立一個檔案存放。

SQLite支援的SQL指令:http://www.sqlite.org/lang_corefunc.html

C#要連接SQLite可以使用open source的System.Data.SQLite,它是一個基於ADO.Net所做與SQLite的溝通介面,目前支援到.net framework 3.5。可於sourceforge下載其dll來使用,就可以了。

下方的範例是介紹如何在Csharp下使用ADO.NET連接與操作SQLite,包含了自動產生SQLite檔案與DataGridView使用class binding datasource方法。

一、建立一個專案,並先將其儲存起來

(需要先建置專案才能使用專案裡的class當做datasource)

01.jpg

02.jpg

二、改變專案使用的Framework

更多內容 Csharp使用ADO.NET操作SQLite