初學SQLite資料庫

來源:互聯網
上載者:User

學C++沒幾天,程式要用資料庫,又不想用MFC的控制項之類還沒去研究的東西。便找了一個開源的,可以嵌入程式的小

型資料庫SQLite(首頁http://www.sqlite.org)。

先在http://www.sqlite.org/download.html下的Precompiled Binaries For Windows下載了sqlite-3_2_2.zip(

一個命令列的SQLite示範程式)和sqlitedll-3_2_2.zip(一個Dll)。
先運行命令列的SQLite示範程式,根據他提供的文檔(是一個簡單的教程)。

我用命令
“.output F:\編程\資料庫\SQlite\sqlite-3_2_2\e”
在SQlite的工作目錄下產生了一個檔案名稱為“編程資料庫SQlitesqlite-3_2_2e”的檔案,但我想在C:\test\下生

成檔案時,他報錯說:

sqlite> .output c:\test\1
can't write to "c:      est?

不知道是為什麼。

我接著用

sqlite> create table tbl1(one varchar(10), two smallint);
sqlite> insert into tbl1 values('hello!',10);
sqlite> insert into tbl1 values('goodbye', 20);
sqlite> select * from tbl1;

建立一個表,添加兩個資料,他輸出
hello!|10
goodbye|20

下面是我在Google上搜尋到的一篇教程。

少於五分鐘的學習SQLite
譯者: wide288

這告訴你怎麼開始實驗 SQLite ,這裡沒有長長的說明和配置。:

下載代碼
取得一份二進位拷貝, 或者是原始碼並自己編譯它. 關於 下載頁(download) 的更多資訊.

建立一個新資料庫
在 DOS 命令列下, 輸入: "sqlite3 test.db". 將建立一個新的資料庫檔案名叫"test.db". (你可以使用不同的名

字)

輸入 SQL 命令在提示符下建立和寫入新的資料.

寫程式使用 SQLite
下面是一個簡單的 TCL 程式讓我們看看怎麼使用 sqlite 的 TCL 介面. 此程式執行 SQL 聲明的第二個參數 執行

SQL命令. 這個命令是 sqlite3 在第 7 行開啟一個 SQLite 資料庫並且建立一個新的 TCL 命令,名字是"db" 連

接到資料庫,這個 db 命令在第 8 行執行 SQL 命令對資料庫,並且關閉與資料庫的串連.

#!/usr/bin/tclsh
if {$argc!=2} {
puts stderr "Usage: %s DATABASE SQL-STATEMENT"
exit 1
}
load /usr/lib/tclsqlite3.so Sqlite3
sqlite3 db [lindex $argv 0]
db eval [lindex $argv 1] x {
foreach v $x(*) {
puts "$v = $x($v)"
}
puts ""
}
db close

下面是一個C程式的例子,顯示怎麼使用 sqlite 的 C/C++ 介面. 資料庫的名字由第一個參數取得且第二個參數或

更多的參數是 SQL 執行語句. 這個函數調用sqlite3_open() 在 22 行開啟資料庫, sqlite3_exec() 在 27 行執

行 SQL 命令, 並且sqlite3_close() 在 31 行關閉資料庫連接.

#include <stdio.h>
#include <sqlite3.h>

static int callback(void *NotUsed, int argc, char **argv, char **azColName){
int i;
for(i=0; i<argc; i++){
printf("%s = %s\n", azColName[i], argv[i] ? argv[i] : "NULL");
}
printf("\n");
return 0;
}

int main(int argc, char **argv){
sqlite3 *db;
char *zErrMsg = 0;
int rc;

if( argc!=3 ){
fprintf(stderr, "Usage: %s DATABASE SQL-STATEMENT\n", argv[0]);
exit(1);
}
rc = sqlite3_open(argv[1], &db);
if( rc ){
fprintf(stderr, "Can't open database: %s\n", sqlite3_errmsg(db));
sqlite3_close(db);
exit(1);
}
rc = sqlite3_exec(db, argv[2], callback, 0, &zErrMsg);
if( rc!=SQLITE_OK ){
fprintf(stderr, "SQL error: %s\n", zErrMsg);
}
sqlite3_close(db);
return 0;
}

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.