在我的winform開發框架中,底層的資料訪問支援多種不同的資料庫,在資料庫訪問的開發過程中,發現sqlite多數情況下,操作都和sqlserver或者說是和標準sql差不多的。當然,sqlite本身也有一些特殊的語句支援,本文主要根據自己的了解,以及在支援的sqlite基類中的提煉,總結他們常用到的一些不同,以便以後查閱,並和大家分享討論。
在我的winform開發框架中,是支援sqlite等這樣的資料庫接入的,示例圖如下所示。
現在根據我整理的一些特殊地方,和大家分享討論:
1)特殊字元
每種資料庫,基本上在操作sql語句中,都有自己的一些特殊的分隔符號,如防止和關鍵字重名的特殊引用字元,sqlserver是, 這方面sqlite也沿用這個。引數化語句的佔位符,sqlserver和access是@,oracle是:,而sqlite則支援$和@。
2)獲取返回剛剛插入的主鍵字段值(自增長)
這種操作也是經常用到的,一般sqlserver是用select scope_identity() 語句操作,access用的是select @@identity,oracle由於用的是序列,所以是select seq_testtable.currval id from dual這樣的操作,sqlite呢,他也有自己的特殊語句了,就是:select last_insert_rowid() ,是不是比較容易記住呢。
3)limit語句使用
在sqlserver中,我們常用top語句來運算元據,以便獲取必要的記錄資訊,這個在sqlite不支援的,而它和mysql一樣,是使用limit語句來實現相同的效果,下面就是我winform開發框架中,獲取第一條記錄和最後一條記錄的基類方法,我在這裡分享一下。
//////
查詢記錄表中最舊的一條記錄
///
///
public
override t findfirst()
from order by asc limit 1
", selectedfields, tablename, getsafefilename(sortfield));
t entity =
null;
database db = createdatabase();
dbcommand command = db.getsqlstringcommand(sql);
using (idatareader dr = db.executereader(command))
}
return entity;
}///
///查詢記錄表中最新的一條記錄
///
///
public
override t findlast()
from order by desc limit 1
", selectedfields, tablename, getsafefilename(sortfield));
t entity =
null;
database db = createdatabase();
dbcommand command = db.getsqlstringcommand(sql);
using (idatareader dr = db.executereader(command))
}
return entity;
4、分頁實現
》,其實sqlite分頁邏輯也不神秘,無非也是利用limit語句實現所需要的記錄獲取,如下所示。
//////
不依賴於儲存過程的分頁(sqlite)
///
///如果isdocount為true,返回總數統計sql;否則返回分頁語句sql
///private
string getsqlitesql(
bool isdocount)
if (isdocount)
//執行總數統計
where
", this.strwhere);
}else
", this.fieldnametosort,
this.isdescending ?
"desc
" :
"asc");
int minrow = pagesize * (pageindex -
1);int maxrow = pagesize * pageindex;
sql =
string.format(
"select from where limit ,
",
fieldstoreturn,
this.strwhere, strorder, minrow, maxrow);
}return sql;
Qt資料庫之訪問 SQLite
sqlite 是乙個開源的嵌入式關聯式資料庫,實現自包容 零配置 支援事務的sql資料庫引擎。其特點是高度便攜 使用方便 結構緊湊 高效 可靠。整個資料庫 定義 表 索引和資料本身 都在宿主主機上儲存在乙個單一的檔案中。sqlite 支援跨平台,同乙個 sqlite 的資料庫檔案,可以在 windo...
C 訪問SQLite資料庫
a.解壓後copy c sqlite 3 5 0 b.進入cmd模式,進入sqlite 3 5 0目錄,執行sqlite3 mytest.db c.create table mytable1 seq int,desc varchar 8 insert into mytable1 values 1,p...
android訪問sqlite資料庫
在 android 中可以使用 eclipse 外掛程式ddms 來檢視,也可以使用 android 工具包中的 adb工具來檢視。android 專案中的 sqlite 資料庫位於 data data 專案包 databases中。1 首先開啟 android 專案的除錯模式,然後找到顯示 ddm...