顯示具有 sqlite 標籤的文章。 顯示所有文章
顯示具有 sqlite 標籤的文章。 顯示所有文章

2009年1月20日 星期二

SQL Transaction的基本使用

SQL語法有一個語法,用來確保一整個流程是否正常完成,否則就取消先前的動作。

我個人是用交易(以下都用這個字詞)來理解這個動作。

語法:

開始交易

begin transaction

結束交易

end transaction

or
commit

取消交易

rollback

 

取消的結果就是,從開始交易之後的所有修改資料的動作(包括insert, update, delete)到rollback為止,全都會被復原到開始前的狀態。

結束交易的結果就是,確定執行交易的內容(中間修改的動作),之後就不能復原了。

ps. 在SQLite裡面 begin transaction可以省略為 begin,結束可以用end 。

延伸閱讀: SQLite Query Language: BEGIN TRANSACTION

2008年12月24日 星期三

[筆記] SQLite 加密?

使用ADO.NET 2.0 Provider for SQLite,在Visual Studio中建立連線時,可以設定密碼。

而我發現設定密碼之後產生的.sqlite資料庫(檔)用ultraedit開啟,會變成一篇亂碼,原本的sqlite檔頭不見了,應該是用password當做加密字串來處理過內容了吧。

但是麻煩的是,設定password產生的資料庫,無法使用其他sqlite工具來開啟,因為檔案內容無法被這些工具辨識的關係。

或著是,這是ADO.NET 2.0 Provider for SQLite僅有的規格?

[筆記] SQLite 如何選取前幾筆的資料

像TSQL有選取前幾筆的語法:

select top n,如:

select top 100 * from table1 order by column1

而SQLite選取筆數的語法為:

在語法最後加上 limit n,如:

select * from table1 order by column1 limit 100
延伸閱讀: How to optimise queries to limit the number of rows returned...

[筆記]如何將datetime型的變量存入sqlite中

因為sqlite的時間是用標準時間utc+0,要改為localtime

insert (update_time) values (datetime(CURRENT_TIMESTAMP,'localtime'))

另外關於sqlite的時間函數,可以參考:

編程資料:SQLite的日期時間函數!

官方wiki文件

 

參考來源: c#中如何將datetime型的變量存入sqlite中型的變量存入