Time of Update: 2018-12-07
前些時候看到興趣小組裡有人問“Android上SQLite的最佳實務”是什麼,好奇地搜了一下,確實沒有一個好一點的指導文檔,平時的使用也只是簡單的拷貝code,並沒有深入的研究過。以下是我看到的Kevin關於其使用的心得,原文的大體的意思是:Android例子涵蓋了一些Sqlite的基本用法,但它們並沒有深入地給出合理的使用方法,更重要的是,不合理的使用方法。大多數例子和文檔只是涉及最基本的資料庫查詢,或者教你如何建立一個ContentProvider。從來不提及的地方像: ·
Time of Update: 2018-12-07
今天突然讓我發現原來 NHibernate 支援的資料庫裡麵包含有一 SQLite ,看名字就覺得這個資料庫肯定夠輕量!!!在 SQLite http://www.sqlite.org 的官方網站看這個資料庫竟然支援到 2TB 哦!!!又無需服務端,無需用戶端! 不過,今天在試用 NHibernate 來訪問 SQLite ,卻讓我遇到了想不到的 Exception ,具體是:NHibernate.MappingException: Unknown entity
Time of Update: 2018-12-07
本文介紹了如何在asp.net web 程式中使用Sqlite嵌入式資料庫,sqlite資料庫可以作為檔案放在網站的APP_DATA目錄下,適合小網站使用,使用它不需要買sql server空間,而且據說它的效能很不錯。Sqlite是嵌入資料庫,類似與MS Sql Server Compact,之所以不用Sql server compact是因為它既不支援SELECT
Time of Update: 2018-12-07
sqlite的文法和sql server的文法是有一些區別的,比如插入資料,對於標示種子的欄位,必須指定為NULL,而獲得新id,在sql server中是Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->SELECT @@IDENTITY [id]但是在sqlite中不是這樣,而是Code highlighting produced by
Time of Update: 2018-12-07
在sqlite編程中多線程同時寫時會出現異常,我寫了個類來解決這個問題。思路很簡單,就是在開始寫操作時,記下寫操作的託管線程id,表示目前有線程正在做寫操作;其他線程來寫時,需要先檢測是否有進程正在做寫操作,如果有就需要等待,等待到某一個配置的逾時時間時,會拋出異常終止等待;如果沒有則直接允許存取,此線程可以獲得寫鎖。最後寫操作執行完畢時需要釋放鎖。下面是具體的代碼:SQLiteWriteLockCode highlighting produced by Actipro
Time of Update: 2018-12-07
開門見山,System.Data.SQLite的: http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki一般性地,使用.net做系統都會使用Microsoft SQL Server,因為兩者結合最好,原因也不用我說,在.net Framework 3.5後,都有提供Linq to SQL,這是一個非常易用的ORM,做一般的項目也足夠了。但Linq to SQL貌似只有微軟自家的Microsoft SQL
Time of Update: 2018-12-07
原文地址在這裡 原理其實很簡單,就是把包含未經處理資料的檔案包在專案檔裡,在第一次啟動啟動並執行時候,把它拷貝到resource目錄下(不然在原目錄內無法進行寫入操作)。 代碼Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->NSString *storePath = [[self applicationDocumentsDirectory]
Time of Update: 2018-12-07
android系統下每個程式的資料存放在 /data/data/(package name)/ 目錄下,資料庫則是在/dababases/目錄下..所以,你只要用FileInputStream讀取原資料庫,再用FileOutputStream把讀取到的東西寫入到那個目錄就可以了..操作方法:1. 把原資料庫包括在項目源碼的 res/raw 目錄下.2.建立一個類來控制database..如下: public class DatabaseManager{ private final
Time of Update: 2018-12-07
啥也不說了,剛剛研究出來滴~~~貼碼:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->
Time of Update: 2018-12-07
下載示範工程 - 389 Kb資料庫檔案 - 1.38 Kb下載原始碼 - 111 Kb 簡介如果你的網站需要或者程式需要一個文字搜尋引擎, 那麼除非你自己寫一個, 不然你就要把你想要搜尋的資料交給某一個網路搜尋引擎然後花錢來索引你的網站, 但是現在你用我的程式就可以索引你的 text/HTML/ASP 檔案了,它會將關鍵詞儲存到資料庫以備將來的搜尋之用.程式使用 SQLite 作為資料庫. 它是一個開源的資料庫可以免費使用. 更多的資訊可以參考這個網站.我使用 Finisar 的 .NET
Time of Update: 2018-12-07
發現Firefox的SQLite Manager外掛程式的時間問題,手工添加的資料,程式讀取的時候報無效的DateTime格式,如果用程式添加,則沒有此問題.SQLite Manager 版本0.3.17System.Data.SQLite.dll版本:1.0.60.0該字串未被識別為有效 DateTime。說明: 執行當前 Web 請求期間,出現未處理的異常。請檢查堆疊追蹤資訊,以瞭解有關該錯誤以及代碼中導致錯誤的出處的詳細資料。 異常詳細資料: System.FormatException:
Time of Update: 2018-12-07
1. 產生 .lib 檔案 從http://www.sqlite.org下載SQLite3.dll和SQLite3.def檔案,以vc++6.0為例:第一步:找到lib.exe所在目錄一般都在X:\Program Files\Microsoft Visual Studio\VC98\Bin下,在“運行”中輸入cmd,然後切換到該目錄下第二步:使用LIB命令產生.lib檔案很多網頁上都介紹,使用LIB /DEF:sqlite3.def
Time of Update: 2018-12-07
sqlite 插入資料很慢的原因:sqlite在沒有顯式使用事務的時候會為每條insert都使用事務操作,而sqlite資料庫是以檔案的形式存在磁碟中,就相當於每次訪問時都要開啟一次檔案,如果對資料進行大量的操作,時間都耗費在I/O操作上,所以很慢。解決方案是顯式使用事務的形式提交:因為我們開始事務後,進行的大量操作的語句都儲存在記憶體中,當提交時才全部寫入資料庫,此時,資料庫檔案也就只用開啟一次。我在沒有顯式使用事務形式插入100條資料時用了12.226s;用明確交易形式,插入100條只用了0
Time of Update: 2018-12-07
一、概述: 在SQLite中,鎖和並發控制機制都是由pager_module模組負責處理的,如ACID(Atomic, Consistent, Isolated, and Durable)。在含有資料修改的事務中,該模組將確保或者所有的資料修改全部提交,或者全部復原。與此同時,該模組還提供了一些磁碟檔案的記憶體Cache功能。
Time of Update: 2018-12-07
一、概述: 在SQLite提供的C/C++介面中,其中5個APIs屬於核心介面。在這篇部落格中我們將主要介紹它們的用法,以及它們所涉及到的核心SQLite對象,如database_connection和prepared_statement。相比於其它資料庫引擎提供的APIs,如OCI、MySQL API等,SQLite提供的介面還是非常易於理解和掌握的。 二、核心對象和介面: 1. 核心對象:
Time of Update: 2018-12-07
一、記憶體資料庫: 在SQLite中,資料庫通常是儲存在磁碟檔案中的。然而在有些情況下,我們可以讓資料庫始終駐留在記憶體中。最常用的一種方式是在調用sqlite3_open()的時候,資料庫檔案名參數傳遞":memory:",如: rc = sqlite3_open(":memory:", &db);
Time of Update: 2018-12-07
一、彙總函式: SQLite中支援的彙總函式在很多其他的關係型資料庫中也同樣支援,因此我們這裡將只是給出每個聚集合函式的簡要說明,而不在給出更多的樣本了。這裡還需要進一步說明的是,對於所有彙總函式而言,distinct關鍵字可以作為函數參數欄位的前置屬性,以便在進行計算時忽略到所有重複的欄位值,如count(distinct x)。函數說明avg(x)該函數返回在同一組內參數欄位的平均值。對於不能轉換為數字值的String和BLOB類型的欄位值,如'HELLO',SQLite會將其視為0。
Time of Update: 2018-12-07
一、簡介: SQLite是目前最流行的開源嵌入式資料庫,和很多其他嵌入式儲存引擎相比(NoSQL),如BerkeleyDB、MemBASE等,SQLite可以很好的支援關係型資料庫所具備的一些基本特徵,如標準SQL文法、事務、資料表和索引等。事實上,儘管SQLite擁有諸多關係型資料庫的基本特徵,然而由於應用情境的不同,它們之間並沒有更多的可比性。下面我們將列舉一下SQLite的主要特徵: 1). 管理簡單,甚至可以認為無需管理。 2).
Time of Update: 2018-12-07
1. @@IDENTITY LAST_INSERT_ROWID()2. SELECT cn = COUNT(*) FROM ... SELECT COUNT(*) cn FROM ...3. LIMIT startIndex,itemCn 這兒的startIndex是從0開始的,而ROW_NUMBER()是從1開始的4. sqlite中沒有SELECT TOP,用LIMIT即可5. SQLite自增欄位,如果在事務中插入資料失敗,並不會佔用增長後的id,而sql server中對應的id將無效6
Time of Update: 2018-12-07
進行行動裝置開發,例如Windows Mobile或者Wince(Windows Embedded CE)的開發,有時候會使用到SQLite作為儲存資料庫。SQLite預設配置是不會自動回收空間,如何進行大量資料的刪除以後,資料庫檔案大小不會自動減少,因此需要手工壓縮SQLite的資料檔案大小。 很簡單的操作,執行VACUUM命令,完了。參考 http://www.sqlite.org/lang_vacuum.html 關於SQLite的Native C++開發,可參考 Windows