sqliteをCentOSにインストールしてC言語からアクセス
sqliteをCentOS5にインストールしました。のでメモ。
ダウンロードと解凍
#cd /usr/local/src #wget http://www.hwaci.com/sw/sqlite/sqlite-amalgamation-3.6.11.tar.gz #tar -zxvf sqlite-amalgamation-3.6.11.tar.gz
コンパイル
#cd sqlite-3.6.11 #./configure --prefix=/usr/local/sqlite #make #make install #export PATH=$PATH:/usr/local/sqlite/bin #sqlite3 -version
データベースの作成
この辺りからパクります。
sqlite3: A command-line access program for SQLite databases
#sqlite3 test.db #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;
C言語でSelectするプログラムを書いてみる
test_sqlite.c
#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_free(zErrMsg); } sqlite3_close(db); return 0; }
コンパイルと実行
#gcc -L/usr/local/sqlite/lib -I/usr/local/sqlite/include -lsqlite3 -o test_sqlite test_sqlite.c #./test_sqlite