sqlite學習筆記(1)環境搭建
一、 命令運行平臺
學習一樣新的先要把環境平臺搭建起來,然后自己多實踐才能領悟的更快一點。初學時可以參考《sqlite3權威指南》。
首先去官網下載sqlite-tools-win32-x86-3190300.zip和sqlite-dll-win64-x64-3200100.zip(注意我的是64位的,如果是32位的下載x86版)
然后在d盤創建一個文件夾D:\sqlite3,把 sqlite3.def、sqlite3.dll和sqlite3.exe三個文件放進去。打開cmd,先進入D盤,再cd進入sqlite3目錄,再運行sqlite3.exe,敲命令時只需敲前幾個字母,再按tab鍵就會自動補齊。如下圖創建成功。
然后創建數據庫,出錯
這是因為之前運行了sqlite3.exe,現在表示數據庫狀態,怎么能在數據庫里創建數據庫呢,按ctrl+c退回原目錄,再創建數據庫就可以了,這時還看不到創建的db文件,一定要先創建一張表之后,才能在目錄下看到文件。
輸入sqlite3.exe test.db
create table test (id integer primary key, value text);
這里要注意一點,命令是沒“;”的,sql語句是有“;”的
下面是基本命令介紹:
.dump:這個就是輸出你之前對數據庫的各種操作命令
.output stdout:輸出到屏幕上
.output file.sql:輸出到file.sql文件
.read file.sql:把文件里的命令導入到當前數據庫并執行
如果命令符是在安裝目錄,可以這樣D:\sqlite3>sqlite3.exe test.db < file.sql,這樣就把file.sql導入到test.db里。
二、 visul stdio 2010平臺
這個主要參考http://blog.csdn.net/hyxiaohaiyang/article/details/7382551
在官網下載sqlite-amalgamation-3180000.zip,里面有sqlite3.h文件,首先把從VS2010的安裝目錄下Microsoft Visual Studio 10.0\VC\bin找到lib.exe和link.exe,從VS2010的安裝目錄下Microsoft Visual Studio 10.0\Common7\IDE找到mspdb100.dll。將lib.exe link.exe mspdb100.dll放到上文所說的D:\sqlite3文件夾里,在D:\sqlite3目錄下運行lib /def:sqlite3.def,將會生成sqlite3.lib文件。
然后在vs里新建win32控制臺應用工程,選空項目,然后把sqlite3.h、sqlite3.lib復制到源碼目錄,然后添加一個cpp文件,并把輸入以下測試代碼,現在先不管代碼的意思
#include <stdio.h>
#include "sqlite3.h"
//查詢的回調函數聲明
int select_callback(void * data, int col_count, char ** col_values,
char ** col_Name);
int main(int argc, char * argv[])
{
const char * sSQL1 =
"create table users(userid varchar(20) PRIMARY KEY, age int, birthday datetime);";
char * pErrMsg = 0;
int result = 0;
// 連接數據庫
sqlite3 * db = 0;
int ret = sqlite3_open("./test.db", &db);
if (ret != SQLITE_OK)
{
fprintf(stderr, "無法打開數據庫: %s", sqlite3_errmsg(db));
return (1);
}
printf("數據庫連接成功!\n");
// 執行建表SQL
sqlite3_exec(db, sSQL1, 0, 0, &pErrMsg);
if (ret != SQLITE_OK)
{
fprintf(stderr, "SQL error: %s\n", pErrMsg);
sqlite3_free(pErrMsg);
}
// 執行插入記錄SQL
result = sqlite3_exec(db, "insert into users values('張三',20,'2011-7-23');",
0, 0, &pErrMsg);
if (result == SQLITE_OK)
{
printf("插入數據成功\n");
}
result = sqlite3_exec(db, "insert into users values('李四',20,'2012-9-20');",
0, 0, &pErrMsg);
if (result == SQLITE_OK)
{
printf("插入數據成功\n");
}
// 查詢數據表
printf("查詢數據庫內容\n");
sqlite3_exec(db, "select * from users;", select_callback, 0, &pErrMsg);
// 關閉數據庫
sqlite3_close(db);
db = 0;
printf("數據庫關閉成功!\n");
return 0;
}
int select_callback(void * data, int col_count, char ** col_values,
char ** col_Name)
{
// 每條記錄回調一次該函數,有多少條就回調多少次
int i;
for (i = 0; i < col_count; i++)
{
printf("%s = %s\n", col_Name[i],
col_values[i] == 0 ? "NULL" : col_values[i]);
}
return 0;
}
然后必須把sqlite.lib添加到工程里,lib有兩種,靜態的不需要dll,動態的需要鏈接dll,這里是動態的lib。
編譯整個工程,出現LINK:fatal error LNK1123:轉換到 COFF期間失敗:文件無效或損壞,出現這個問題參考http://blog.csdn.net/kevin_mqj/article/details/22981873,將項目——項目屬性——配置屬性——連接器——清單文件——嵌入清單 “是”改為“否”就可以了。
編譯通過后生成exe文件,在debug文件夾里(注意有2個debug文件夾,exe文件在外層那個),然后把sqlite.dll放到這個目錄下面。運行后又出現“應用程序無法正常啟動0xc000007b的錯誤”,網上搜了一下,主要問題大概是于32位的程序調用了64位的dll或者反過來,由于我的dll是64位的,那么說明應用程序是32位,可能需要對vs的環境進行設置。另外一種方法我直接重新下了一個32位的dll替換掉64位就可以了。
三、 eclipse cdt和 gcc平臺
使用eclipse之前首先要安裝jdk,這里jdk要和eclipse的版本對應,然后再安裝cdt插件,不同版本的cdt對應著不同的eclipse版本,可以在官網查看對應版本
http://www.eclipse.org/cdt/downloads.php
也可以直接下載帶cdt的eclipse,這樣就不用安裝插件了
http://www.eclipse.org/downloads/packages/eclipse-ide-cc-developers/oxygen1a
我使用的版本是eclipse 4.3、 cdt8.3、 jdk1.6,先安裝jdk,再安裝插件,然后要安裝gcc編譯器,一般網上講的都是mingw,但是這個似乎要在線安裝比較麻煩,所以我選擇TDM-GCC,軟件很小,一鍵安裝就可以,使用都和mingw差不多。
然后把jdk的環境變量設一下就可以了,這個網上講的很多了,就不說了,TDM-GCC安裝后,它的環境變量會自動添加的。這里要注意的是如果想自己使用make命令的話,要把安裝目錄TDM-GCC-32\bin下的mingw32-make.exe的改為make.exe。如果用eclipse的話就不要管了。
接下來新建項目,如圖所示
然后添加main.c文件,代碼和上面的一樣,再把sqlite.dll和sqlite.h放到工程下,這里eclipse不用添加文件,因為他的工程目錄和文件目錄是保持同步的,拷到工程目錄下就可以了。這里sqlite.dll要重新命名為libsqlite.dll(不改好像也可以),然后右鍵工程—屬性—c++構建—庫里面添加dll路徑,路徑添加時點+號里的工作空間,找到位置雙擊就可以了
編譯后在debug文件夾下生成sqlite_test2.exe,這時要把sqlite.dll文件拷到這個文件夾下才能運行,點綠色三角形的運行按鈕后,運行成功。
如果要debug,工程目錄不能為中文,點擊蟲子按鈕右邊三角形下拉的調試配置選項
把原來的gdb改為
這樣就可以單步調試了
智能推薦
Maven筆記1:環境搭建
為什么80%的碼農都做不了架構師?>>> 一、簡介 Maven是基于項目對象模型(POM),可以通過一小段描述信息來管理項目的構建,報告和文檔的軟件項目管理工具。 為什么要用Maven呢? (1) JavaEE項目有很多依賴jar包,一個簡單的SSH項目依賴包可能有30多M, 而源代碼可能只有幾百K。體積龐大的依賴包造成代碼版本控制、分享代碼非常不方便。...
SQLite學習筆記1 - 源碼編譯&基本操作
一、環境配置 操作系統:Windows10 下載地址: windows環境下載zip版本: 二、編譯 根據官網說明來操作 cmd中輸入cl shell.c sqlite3.c -Fesqlite3.exe 創建一個aaa.db數據庫,創建表test 插入三條數據 插入三條數據 設置列的模式顯示 三、使用vs編寫數據庫操作 創建一個控制臺項目,sqlite3.c和sqlite3.h 作為源文件添加到...
SQLite學習筆記(四)
概述 本篇文章將繼續介紹關于 SELECT 中的一些用法。文章結構如下: 子查詢 多表連接/聯結表 名稱和別名 組合/復合查詢 條件結果 一、子查詢 子查詢是指 SELECT 語句中又嵌套 SELECT 語句。子查詢最常應用的地方是 WHERE 子句,特別是在 IN 操作符中。下面通過一個例子來了解下子查詢的用法和好處。 例子 列出訂購商品 RGAN01 的所有顧客。這個需求的檢索思路如下: 檢索...
SwiftUI學習筆記[Sqlite]
前言 移動端開發對于數據本地化的儲存可有文件儲存【即寫入到本地文件中NSUserDefaults的本質就是將數據按照key=value形式儲存在plist文件】,當然大量的數據字典儲存還是得用強大的sqlite。 一,SQLiteDB-集成 1.下載框架文件 SQLiteDB官網 中下載文件解壓拿到關鍵的.swift框架文件【CloudDB.swift,SQLTable.swift,SQLiteB...
mbedtls學習(1)搭建環境
獲得mbedtls源碼 clone下來時這樣 上面主要4個目錄 configs 是mbedtls參考的配置文件 include 是源碼頭文件,mbedtls的默認配置頭文件是config.h就在這里面 library 是源碼C文件,mbedtls的實現 programs 是一些示例,可以參考里面的例子看怎么用mbedtls 建立實驗工程編寫makefile 建立實驗工程目錄如下 mbedtls目錄...
猜你喜歡
Django學習(1):環境搭建
目錄 原****鏈接 django入門與實踐杜秉軒 安裝python 下載 安裝 Django安裝 pip安裝 在命令行中執行以下命令 使用清華大學鏡像 編輯器 這里我使用了PyCharm 原****鏈接 django入門與實踐(杜秉軒) 安裝python 下載 關于python的版本,2和3都行,我用的是3.6.0 python官網下載地址 國內官網下載非常的慢,建議使用其他的下載方式 pyth...
freemarker + ItextRender 根據模板生成PDF文件
1. 制作模板 2. 獲取模板,并將所獲取的數據加載生成html文件 2. 生成PDF文件 其中由兩個地方需要注意,都是關于獲取文件路徑的問題,由于項目部署的時候是打包成jar包形式,所以在開發過程中時直接安照傳統的獲取方法沒有一點文件,但是當打包后部署,總是出錯。于是參考網上文章,先將文件讀出來到項目的臨時目錄下,然后再按正常方式加載該臨時文件; 還有一個問題至今沒有解決,就是關于生成PDF文件...
電腦空間不夠了?教你一個小秒招快速清理 Docker 占用的磁盤空間!
Docker 很占用空間,每當我們運行容器、拉取鏡像、部署應用、構建自己的鏡像時,我們的磁盤空間會被大量占用。 如果你也被這個問題所困擾,咱們就一起看一下 Docker 是如何使用磁盤空間的,以及如何回收。 docker 占用的空間可以通過下面的命令查看: TYPE 列出了docker 使用磁盤的 4 種類型: Images:所有鏡像占用的空間,包括拉取下來的鏡像,和本地構建的。 Con...
requests實現全自動PPT模板
http://www.1ppt.com/moban/ 可以免費的下載PPT模板,當然如果要人工一個個下,還是挺麻煩的,我們可以利用requests輕松下載 訪問這個主頁,我們可以看到下面的樣式 點每一個PPT模板的圖片,我們可以進入到詳細的信息頁面,翻到下面,我們可以看到對應的下載地址 點擊這個下載的按鈕,我們便可以下載對應的PPT壓縮包 那我們就開始做吧 首先,查看網頁的源代碼,我們可以看到每一...