程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 只讀方式打開sqlite數據庫

只讀方式打開sqlite數據庫

編輯:C++入門知識

在軟件項目中加入Sunisoft在線更新軟件,用戶監測軟件版本更新時自動檢測和下載新版本軟件。軟件功能比較簡單,主要是對sqlite文件的讀取。但是使用過程中發現只要連接上sqlite數據庫,更新軟件就會認為sqlite數據庫文件已被修改,與服務器上的版本不符,需要更新該文件。通過md5比較,數據庫被打開的時候並沒有做任何修改。後來通過測試發現,只要文件被通過可寫的方式打開,Sunisoft軟件就會認為文件已經被修改,即使打開之後不做寫操作。 找到原因,接下來就容易解決了。由於軟件不需要對sqlite文件進行些操作,主要都是查詢操作,因此可以以只讀方式連接sqlite數據庫。sqlite3提供只讀方式打開文件接口。 [cpp]   int sqlite3_open_v2(     const char *filename,   /* Database filename (UTF-8) */     sqlite3 **ppDb,         /* OUT: SQLite db handle */     int flags,              /* Flags */  www.2cto.com   const char *zVfs        /* Name of VFS module to use */   );     第一個參數為數據庫文件路徑,第二個參數是輸出參數,為數據庫操作指針地址。第三個參數為數據庫訪問方式,可通過此參數配置只讀方式打開數據庫,可以是SQLITE_OPEN_READONLY,SQLITE_OPEN_READWRITE和SQLITE_OPEN_READWRITE|SQLITE_OPEN_CREATE中的一個,用於控制數據庫的打開方式,可以和SQLITE_OPEN_NOMUTEX,SQLITE_OPEN_FULLMUTEX, SQLITE_OPEN_SHAREDCACHE,以及SQLITE_OPEN_PRIVATECACHE結合使用。第四個參數zVfs允許客戶應用程序命名一個虛擬文件系統(Virtual File System)模塊,用來與數據庫連接。VFS作為SQlite library和底層存儲系統(如某個文件系統)之間的一個抽象層,通常客戶應用程序可以簡單的給該參數傳遞一個NULL指針,以使用默認的VFS模塊。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved